疯狂java讲义价格_疯狂java讲义
封装:
封装:将对象状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是用类所提供的方法访问和操作。
访问控制符:private(当前类访问权) ,protected(子类访问),public(公共访问),default(包访问)
set(),get()
构造器重载,名字相同 ,形参不同。
构造器中调用另一个构造器用this();必须出现在构造器第一行。
方法重载:名字相同,形参不同。与返回值,修饰符无关。
继承:
继承:每个子类只有一个直接父类,extends。
默认继承java.lang.Object,是所有类的父类。
子类可以重写父类方法。方法重写。两同两小一大:方法名同,形参同,返回值小,异常小,子类访问权限大。
子类覆盖后子类对象不可调用父类方法,但可在子类方法中调用,super(实例方法),父类类名(类方法)来调用。
如果父类private,那方法对子类隐藏,子类无法调用,无法重写。
super:也可用来访问父类被覆盖的实例变量。
会为所有实例变量分配内存。(被覆盖了也分配)
子类也可以用super调用父类构造器。
子类没有super调用父类构造器,系统会在执行子类构造器之前调用父类构造器。
父类构造器在子类构造器之前进行,还会上溯,最先执行的总是java.lang.Object构造器。
继承注意点:子类可以访问父类成员变量和方法,不安全
尽量隐藏父类内部数据,private
不让子类随便访问,修改父类方法,不能访问private.如果希望访问不让重写,用final public,可以被子类重写不能被外部访问用protected.
尽量不在父类构造器中调用被子类重写的方法。
多态:编译时类型和运行时类型不同,相同类型的变量调用同一个方法呈现多种不同行为特征。
编译时类型:声明该变量时的类型。
运行时类型:实际赋给该变量的对象。
子类对象赋给父类引用变量——向上转型,系统自动完成。
父类对象赋给子类引用变量——强制类型转换,instanceof判断更安全,否则ClassCastException
最终类不能被继承:1.用final修饰类,2.用private修饰类的所有构造器,子类无法调用,就无法继承。
组合复用。
初始化块:
可有修饰符static。初始化块按顺序进行。
创建对象时,先调用类里的初始化块再执行构造器。
初始化块是构造器补充,在构造器前执行。
但是不能接受任何参数,对所有对象初始化相同。
==和equals:引用变量用==时,只有他们指向同一个对象才true。==两边没有父子关系的两个对象会编译错误。
“hello”直接量存在常量池,new String ("hello")Jvm会用常量池保存"hello",在调用String类构造器创建一个新对象,保存在堆内存中。所以不相等。
值相等用str1.equals(str2);
类成员,类方法,即使实例是Null也可以访问类成员,null访问实例成员会引发NullPointerException。
静态初始化块也是类成员,类初始化时调用,之后不再执行,
类成员不能访问实例变量。
单例类:一个类只能创建一个实例。构造器private。提供一个public 方法作为访问点,用于创建对象,且是public static.且类还必须缓存已经创建的对象。用一个成员变量来保存曾创建的对象,要被静态方法访问,必须也static.
只能创建一个对象,再多引用所指的都相等。
final:
修饰变量,该变量一旦有初始值就不可改变,final修饰的成员变量必须显示指定初始值,系统不会对final成员隐形初始化,final修饰局部变量,修饰形参
final修饰引用变量,final保证指向的对象不变,但对象内容可以改变。
final修饰变量,宏定义,定义final时就为变量指定初始值,在编译时确定,final变量实际是宏变量。
修饰方法,不可被子类重写。但可以被类内重载
修饰类:不可以有子类,不可被继承、
不可变类:创建该类实例后,该实例实例变量不可改变。
规则:1.用private和final修饰该类成员变量 2.提供带参数构造器,传入参数来初始化。 3.只为该类成员提供getter().不能setter()
抽象:
抽象方法,抽象类:abstract。
抽象方法不能有方法体,抽象类不能被实例化,不能new.这个类只能被继承。
抽象方法没有方法体,必须被子类重写。
final与abstract不能同时用。static和abstract也不能同时修饰同个方法。
抽象类只定义某些方法,把不能实现的部分抽象成抽象方法,留给子类实现。
疯狂java讲义价格_疯狂java讲义相关推荐
- java 数组 内存_图解Java数组的内存分配
1. Java数组是静态的 Java是静态语言,所以Java的数组也是静态的,即:数组被初始化后,长度不可变 静态初始化:显式指定每个数组元素的初始值,系统决定数组长度 String[] books ...
- java 防止拷贝_[改善Java代码]避免对象的浅拷贝
建议43: 避免对象的浅拷贝 我们知道一个类实现了Cloneable接口就表示它具备了被拷贝的能力,如果再覆写clone()方法就会完全具备拷贝能力.拷贝是在内存中进行的,所以在性能方面比直接通过ne ...
- java skip函数_【Java必修课】图说Stream中的skip()和limit()方法及组合使用
1 简介 本文将讲解Java 8 Stream中的两个方法:skip()和limit().这两个方法是Stream很常用的,不仅各自会被高频使用,还可以组合出现,并能实现一些小功能,如subList和 ...
- java培训学费_太原java培训班价格表
随着互联网时代的到来,社会对IT行业人才的需求量只增不减,尤其是Java软件人才的缺口.Java可以到中公优就业it培训学校,学校采用案例式教学,整个课程以案例为主线,贯串学习知识点和技术点,采用全程 ...
- 二级java模拟软件_二级JAVA超级模拟软件
无忧考吧二级JAVA超级模拟软件是无忧考吧为计算机的广大考生们推出的一款计算机二级java语言考试模拟的软件,用户通过模拟可以快速找出自己的不足,可以更好的进行复习,让你在考试中更加稳定的通过! 基本 ...
- java web服务_将Java服务公开为Web服务
java web服务 本教程解决了开发人员面临的最实际的情况. 大多数时候,我们可能需要将某些现有服务公开为Web服务. 在项目生命周期的不同阶段可能会遇到这种情况. 如果这是初始阶段,那么您几乎是安 ...
- java正则表达式 匹配()_学习Java正则表达式(匹配、替换、查找)
import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; public c ...
- 疯狂软件mysql视频_疯狂软件MySql视频
疯狂软件MySql视频 教程内容: 1_疯狂软件_疯狂JAVA_肖文吉老师_MYSQL数据库_数据库概念 2_疯狂软件_疯狂Java_肖文吉老师_MYSQL数据库_MYSQL的安装 3_疯狂软件_疯狂 ...
- java核心教程_核心Java教程
java核心教程 Welcome to Core Java Tutorial. I have written a lot on Core Java and Java EE frameworks. Th ...
最新文章
- 基于OpenCV的车辆变道检测
- java 图像 截取正方形,Instagram API仅返回正方形(裁剪)图像
- HTML5视频的使用总结
- 红米Note 7 Pro彩排PPT露出:可降低90%入水量?
- Arduino语言介绍
- 把tomcat的8080改为80端口
- python 下载文件-python爬虫之下载文件的方式总结以及程序实例
- C语言之——文件操作模式
- visio用例图箭头怎么画_visio2010绘制用例图-带图例
- 开根号计算机在线应用,根号计算器(万能计算器在线计算)
- Python基础之 3. 容器:字符串、列表、元组、字典
- 未点击安全退出直接拔出u盘文件丢失恢复图文教程
- 对龙邱科技TC264库的理解
- markdown 数学公式 任意符号 存在符号
- 2023年推荐几款开源或免费的web应用防火墙
- 服务器虚拟成多人同时使用,同一台云服务器多人同时登录吗
- 网线传输速度测试_如何测验网线的好坏,传输速度等
- python与图论的桥梁——igraph
- matlab_批量修改文件前缀或后缀
- VarCards网址变更: 人类重大疾病基因变异解读数据库及分析平台
热门文章
- Android:SharedPreferences详解+示例
- C和C++实务精选丛书
- 关于三极管偏置电路的思考
- katalon进行app测试_Katalon API 测试 Demo
- angular 字符串转换成数字_Python基础语法大全:字符串的处理与使用
- 使用nginx代理,怎么获取真实的IP
- Zookeeper应用:服务端上下线
- macbook禁用键盘_一行命令禁用 MacBook 内置键盘
- linux kvm查看线程状态,kvm线程-005-线程状态-THREAD_JUST_BORN
- 我的世界服务器怎么修改书与笔,我的世界书与笔怎么做 我的世界书与笔怎么用...