1 对象的创建和引用
同一个类的每一个对象有不同的成员变量的存储空间,同一个类的对象共享该类的方法
2 构造器
构造器与类名相同并且没有返回值,当没有为类设计构造器时,编译器将制动添加无参构造器。
public class Test {
public void test() {}
}
//没有设定构造器时,编译器为您添加默认构造器
//等价于
public class Test {
Test() {}//默认构造器
public void test() {}
}
如果你显式设定了有参的构造器,编译器并不会为您再添加默认构造器,如需默认构造器需要自己显式设定
3 方法重载和方法重写
- 方法重载:在类中定义一个具有相同名字,但是有不同参数(不同参数,可以类型不同、参数个数不同等)的方法。
- 方法重写:派生类(子类)把和基类具有一样的名字、相同参数、相同返回值的方法重新实现,访问权限不能比基类严格。
class FatherClass {
FatherClass() {}
FatherClass(int i) {}//方法重载
public void test(int i) {
System.out.println("FatherClass: test(int i)");
}
}
public class ChildrenClass extends FatherClass {
ChildrenClass(int i) {
super(i);
}
//方法重写
@Override
public void test(int i) {
System.out.println("ChildrenClass: test(int i)");
}
}
4 this关键字
this相当于一个变量,值为传进当前方法的对象的引用。this一般用于处理方法中成员变量和参数重名的情况。
class Person {
private String name;
private int age;
Person(String name, int age) {
this.name = name;
this.age = age;
}
}
4 static关键字
- static声明的成员变量为类的公共变量,但是只有一份,即所有对象公用这样一份,可以通过类名引用,也可以通过创建类的对象引用。
- static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给静态方法,所以不能访问非static成员。
5 package和import
- package语句必须放在代码中的第一句
- 其他类想引用package里的类,一种方法时写全名,另一种方法是通过import引用该类。前提是class文件的最上层包的父目录位于classpath。
- 执行一个声明了package的类时要写全名。
6 访问控制权限修饰符
- private: 仅供类内部使用
- 无修饰符: 类内部或者同一个包内可以使用
- protected: 类内部、同一个包或者是子类可以使用
- public: 任何地方均可使用
注意:class的修饰符只能是public或者是无修饰符
7 继承中的构造方法
子类的构造必须调用基类的构造器,如果子类没有显式调用基类的构造器,系统默认调用基类的无参构造器,如果子类没有显示调用基类无参构造器,而且基类也没有无参构造器,便宜会报错。
8 动态绑定、迟绑定或多态的条件
(1)要有继承或者实现接口
(2)要重写了基类的方法或者实现了接口方法
(3)基类指向子类对象或者接口指向具体实现
9 抽象类
含有抽象方法(抽象方法只需声明不需实现)的类必须声明为抽象类,抽象类必须被继承,抽象的方法必须被重写。
抽象类不能被创建对象。
10 fianl
final变量的值不能被改变,final方法不能被重写,final类不能被继承
11 interface
- interface的属性为public static final,方法为public。都只是定义没有具体实现。
- 一个接口可以有多个类实现,一个类可以实现多个接口。