1.当参数和成员命名相同时用this关键字,this是对他所成方法所属对象的引用;
2.构造代码块:
特点:对象一建立就运行,且优先于构造方法的执行
作用:用于给对象进行初始化
和构造方法的区别:构造方法是对对应对象进行初始化,构造代码块是定义不同对象共性的初始化内容
3.构造方法之间的调用:只能通过this语句来完成,且只能写在第一行,一个构造方法只可导入一个构造方法
4.static修饰符(又称静态变量,静态成员,类变量):用于修饰成员变量和成员方法,位于内存中的data segment(数据区或共享区)。而实例对象为不是static的变量,存放在对象里
特点:修饰后的成员变量只有一份;
当成员被static修饰之后,多了一种访问方式,即类名直接调用;
随着类名的加载而加载,优先于对象,且被所有对象共享
5.静态方法注意事项:1.静态方法只能访问静态成员;
2.静态成员可以被非静态方法访问;
3.局部变量不可被static修饰
4.静态方法中不可定义this,super关键字,因为静态优先于对象存在
何时使用静态方法?当功能内部未访问非静态成员时,那么该功能可以定义成静态的
6.生命周期:类变量生命周期最长,随着类消失而消失
实例变量生命周期最短,随着对象消失而消失
7.主函数
1.public代表该类或该函数访问权限是最大的
2.static代表主函数随着类的加载就已经存在了
3.void代表无具体返回值
4.main不是java的关键字,他是一个特殊单词,变量不可用关键字,能够被JVM所识别
5.String[] args函数的参数类型是一个字符串类型数组,当数组为空时,没有零下标
8.静态应用工具类
每一个应用程序都有共性的功能,可将这些功能进行抽取,进行封装,以备复用
9.对象的作用:用来封装数据,只要类里有非静态的成员时,那对象就必须存在
10.classpath:主要是在执行时使用: set classpath=...
set classpath=. (单个.表示当前目录)
set classpath=.;...(表示.和...两个目录都可以)
11.文档注释相关,文档提取工具javadoc.exe javadoc -d Mydoc(没有Mydoc会自动创建) -author -version ***.java 保证类是public的
/**
@param 表示传入
@return 表示返回
@author表示作者
@version表示版本
*/
12.静态代码块(区别于构造代码块)
static 静态代码中的执行语句
特点:随着类的加载而执行,并且只会执行一次,并且还会优先于主函数
作用:用于给类进行初始化
13.new一个对象的内存操作步骤
1.new 。。。会把类从硬盘上加载入内存;
2.如有static静态代码块,会随着类的加载而加载,同理静态成员和普通方法也是一样
3.在堆内存中开辟空间,分配内存地址;
4.在堆中建立特有属性,并同时对特有属性进行默认的初始化
5.对属性进行显示初始化
6.执行构造代码块,对所有对象初始化
7.执行构造函数,对对象进行初始化
8.将内存地址给栈中的变量
14.设计模式:针对此类问题最有效的解决方法,java23种设计模式,单例设计模式,只有一个对象
15.继承:1.提高了代码的复用性,简化了代码
2.让类与类之间产生了继承关系,才有了后面的多态特性的存在
3.注意:千万不要为了获取其它类的功能简化代码而建立继承关系,必须类与类之间存在继承关系,
父类又称为超类,基类 继承关系:is a 子类拥有父类的成员,但不包括被private修饰的
4.多层继承,最下层子类拥有整个继承体系的成员,最上层父类拥有所有继承描述
5.java中不存在多继承,因为多继承存在安全隐患,当多个父类定义了相同的成员,子类对象无法确定运行哪一个,接口可以实现
6.访问当前对象子类成员用this,this.变量时,首先在本类中找需要的变量,如果没有再去父类中找,访问当前对象父类成员用super
7.函数的重写(覆盖)注意::必须保证子类的权限》=父类才可覆盖,否则编译出错;静态的函数只能覆盖静态的函数;要保证子父类方法完全一样(包括参数)
8.权限修饰符,public,default(未加修饰符时默认),private,权限依次降低
9.构造函数在子父类中的特点:构造方法无法被重写,每个子类构造方法会有第一条隐式的super(),调用父类的无参数构造方法,也可给参数调用有参构造方法
16.对象转型:
1.对象的向上转型,子类转成父类
2.对象的向下转型,父类转成子类需要强制进行
3.关键字:instanceof测试左边的对象是否是右边类的实例,如果是则返回true,不是则返回false(a instanceof b)
17.多态
体现:父类引用指向子类对象
前提:必须得类与类之间存在关系,可以是继承关系或实现关系
必须有重写
多态成员变量的特点:编译期间:参阅的是引用型变量所属的类中是否有调用的方法;运行期间,参阅对象所属的类中是否有调用的方法
好处:大大提高了程序的可扩展性
弊端:只能用父类的引用访问到父类中的成员
18.匿名对象:1.当对对象的方法只调用一次时可使用来简化;2.匿名对象可以被当做实参来传递
19.object类是java中所有对象的直接或间接父类,“==”和object里面的equals都是比较两对象的内存地址是否一致
20.final可以修饰类函数及变量(成员,局部),被final修饰过的类不可以被其他类继承,被final。。。的函数不可被重写;。。。的变量不允许再次被赋值,所以被final修饰过的变量被称为常量,变量名大写