1、静态方法
使用static修饰符修饰的方法,就是静态方法.
调用这种方法的时候,"可以"使用对象调用,也"可以"使用类来调用,但是推荐使用类进行调用,因为静态
方法是属于类的。(静态属性也是一样的)
静态变量对于类而言在内存中只有一个,能被类的所有实例所共享。实例变量对于类的每个实例都有一份,
它们之间互不影响.
假设同一个类中有俩个方法,a方法和b方法,a和b都是非静态方法,相互之间可以直接调用
public void a(){
b();
}
public void b(){
}
2、构造器
public class Student{
private String name;
public Student(){ //无参构造
name = "tom";
}
public Student(String name){ //有参构造
this.name = name;
}
}
3、内存分析
4、Object类
System.out.println(任何对象 instanceof Object);
//输出结果:true
//注:任何对象也包含数组对象
例如:
//编译后,Person类会默认继承Object
public class Person{}
//Student是间接的继承了Object
public class Student extends Person{}
5、Super关键字
//访问父类中的属性 父类的protected成员是包内可见的,并且对子类可见
public class Person{
protected String name = "zs";
}
public class Student extends Person{
private String name = "lisi";
public void test(String name){
System.out.println(name);
System.out.println(this.name);
System.out.println(super.name);
}
}
//调用父类中的方法
public class Person{
public void print(){
System.out.println("Person");
}
}
public class Student extends Person{
public void print(){
System.out.println("Student");
}
public void test(){
print();
this.print();
super.print();
}
}
6、final修饰符
public final class Action{
} /
/编译报错
public class Go extends Action{
}
7、abstract修饰符
8、接口的本质
接口中的方法都是抽象方法,抽象类只能单继承
接口中的变量都是静态常量(public static final修饰)
一个类可以实现多个接口
public class Student implements A,B,C,D{
//Student需要实现接口A B C D中所有的抽象方法
//否则Student类就要声明为抽象类,因为有抽象方法没实现
} main:
A s1 = new Student();
B s2 = new Student();
C s3 = new Student();
D s4 = new Student();