接下来一段时间,会持续发布一个JavaSE学习笔记系列文章!
1.构造方法
- 构造方法是用来初始化对象的一个方法。
- 使用new+构造方法可以创建一个对象。
- 构造方法没有返回值且与类同名。
- 当没有构造方法时,系统给出形如 类名(){}的默认构造方法。
- 如果已经定义了构造方法,则系统就不再有默认的构造方法。
2.约定俗成的命名规则
- 类名首字母应该大写。
- 变量名和方法名首字母应该小写。
- 应用驼峰标识。(在有多个单词构成时,除了首字母遵循1、2规则外,其余字母的首字母都应该大写)
3.重载
- 方法的重载是指一个类中可以有多个相同名字但是参数不同的方法。调用时,会根据不同的参数来选择不同的方法。
- 方法的名字、参数相同,但是返回值不同的方法不构成重载。
- 构造方法也可以重载。根据不同的对象创建不同的对象。
4.this关键字
- 在类的方法定义中使用的this关键字代表使用该方法对象的引用。
- 当必须指出当前使用的对象是谁时必须使用this关键字。
- 有时使用this可以处理成员变量和参数重名的情况。(this 变量代表对象本身,可以区分成员变量和局部变量)
- this可以看成是一个变量,它的值是当前对象的引用。
- this一般出现在方法里。
- this 可以简化构造函数的调用。
- this 变量允许相同的实例方法为不同的对象工作。每当调用一个实例方法时,this变量将被设置成引用该实例方法特定的类对象方法的代码接着会与this所代表的对象的特定数据进行关联
5.static关键字
- 在类中用static声明的成员变量为静态成员变量,它为类的共有变量,在第一次使用时被初始化,对于该类的所有对象来说,static变量只有一份。
- static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以在静态方法中不能访问非静态方法。(静态方法不再是针对某个的对象的引用)
- 可以通过对象的引用或者类名访问静态成员(不需要实例化)。
- 静态变量放在数据区。(字符串也放在数据区)
- 静态变量是属于某个类的,而不属于某个对象。非静态成员专属于某个对象,所以访问某个非静态成员时必须先new一个对象出来。(皮之不存,毛将焉附)
- 静态变量可以用来计数,非静态变量不行。
- 非静态方法可以调用静态方法!
6.继承
- Java中使用extends关键字实现类的继承。
- 通过继承,子类自动拥有了基类的所有成员(成员变量和方法)
- Java只支持单继承,不支持多继承。(一个基类可以可以派生出多个子类,一个子类只能继承一个基类)
- 继承是“是”关系!(XX是一种XX)
- 构造方法不能直接被继承,要继承父类的构造方法要使用super关键字。
7.访问控制
对于class的权限控制只能用public或default修饰。(public类可以在任何地方被访问。default类只可以被同一个包内部的类访问)
8.方法的重写
- 在子类中可以根据需要从基类中继承来的方法进行重写。
- 重写的方法必须和被重写的方法有相同的方法名称、参数列表和返回值。
- 重写方法不能拥有比被重写方法更高的访问权限。
- 方法的重写(覆盖)发生在子类与父类之间。(方法的重载在同一个类中)
- 原则:重写方法时最好copy父类的方法。
9.super关键字
- 在Java中可以用super关键字调用基类的成员。
- super指向当前对象的父对象。
10.继承中的构造方法
- 子类构造的过程中必须调用其基类的构造方法。
- 子类可以在自己的构造方法中使用super(参数列表)调用父类的构造方法。
- 使用this调用本类的另外的构造方法
- 如果调用super,必须写在子类的构造方法的第一行
- 如果子类中没有显示地调用父类的构造方法,则系统默认调用父类的无参的构造方法。(相当于隐含地调用了super())
- 如果子类既没有显示地调用父类的构造方法,父类中也没有无参的构造方法,则编译出错。
11.object类
- object类为所有类的基类。所有对象(包括数组)都实现这个类的方法。
- 如果在类的声明中未使用extends关键字指明其基类,则默认基类为objcet类。