1.static 静态方法 修饰类里面的成员方法
常用于制作工具类,方便别的类调用。工具类不是描述事情的,而是帮我们完成一件事情。
例如ArrayTools类里面有public static int getMin(int []arr) 方法,那么在其它类里面,可以直接调用:
ArrayTools.getMin(arr);
不用重新new一个对象再调用,例如这样:
ArrayTools tools=new ArrayTools();
tools.getMin(arr);
2.private ArrayTools(){}
如果一个类中所有的方法都是static所修饰,就可以私有构造方法,不让别人再去创建对象,直接调用就可以了,让调用者调用更方便。
3.static静态方法中只能访问静态成员(直接访问)
因为没有创建对象,所以不能用。结合内存,所有静态所修饰的成员是随着类的加载而加载的,类字节码文件加载进方法区,静态成员也存在了,可以用了。但是非静态的得等到对象new出来之后非静态才会出现。static int a;
4. static 中不能使用this关键字
5.1 this是指向当前对象的一个引用
5.2 this 在方法内部局部变量与成员变量重名时,进行区分
public void setname(String name){
this.name=name;//后者为方法的形参,前者为对象,意思是将方法的name赋值给对象
}
//不重名就可以不用this
public void setname(String name1){
name=name1;
}
public String getname(){
return name;//意思是返回对象的名字return this.name也可以
}
5.3 this是一个对象层面的概念,不要与类层次的概念混淆
6.继承
一个.java文件中可编写多个class,
(1)保证多个类是平级关系。外部类。
(2)多个class只能有一个类被public修饰,如果加了public就限制了要和java文件名保持一致。
别搞类嵌套类,不然就是内部类了。
(3)私有的不能继承,比如private String name; 如果想要用的话就要set get,然后再赋值
Manager m=new Manager();//new一个manager对象出来
m.setName("园林");
//如果没有private的话
Manager m=new Manager();//new一个manager对象出来
m.name="园林";
(4)方法的重写
子父类中,出现了方法声明一模一样的方法(方法名、参数、返回值)
在创建子类对象调用方法的时候,会优先使用子类的方法逻辑
这虽然是就近原则的现象,但其实是子类方法对父类方法 进行了重写操作
7.方法重载Overload 方法重写Override
方法重载Overload
在同一个类中,方法名相同,参数不同(类型不同、个数不同、顺序不同),与返回值无关
方法重写Override (方法覆盖)
在子父类当中,出现了方法声明一模一样的方法(方法名、参数、返回值)
pubilc void method ()
public void method (int num) 参数 void返回值 method方法名
可以通过@Override注解校验是否是重写
父类中私有方法子类不能被重写,因为根本访问不到
子类重写父类方法时,访问权限必须大于等于父类
权限修饰符private (default) protected public protected几乎不用
8.Java只支持单继承,不支持多继承(只能有一个爸爸),但支持多层继承(可以通过继承爸爸继承爷爷,前提是爸爸继承了爷爷)
9.构造方法不能被继承,构造方法名要和类名一致
构造方法是用来初始化对象的
练习