【JAVA】2020.6.6日笔记

//静态初始化块的执行顺序;
//上溯到object类,先执行object类里面的静态初始化块,再向下执行子类的静态初始化块,知道我们的类的静态初始化块为止;
//构造方法执行顺序要和上面(静态初始化块)顺序一样;构造方法的方法名称必须和类名保持一致;
//
//程序加载类的时候就会将静态块进行执行
//static{
// 语句;
//
//}
//
//包,对于java文件就相当于文件夹对于文件,建立包的时候默认是域名倒着写。如tao.cn创建包的时候为cn.tbao
//包一定要是非注释性语句的第一句。
//
//导入包,如:
//import TestOperator.User;
//或者:
//import TestOperator2.*//这是代表导入这个包里面的所有的类
//
//继承可以继承父类的全部属性和方法(除了构造方法),但是不见得可以直接访问,如果父类属性和方法是私有的,就无法访问(没加public)
//java中类只能单继承,但是接口可以多继承
//如果定义一个类的时候,没有调用extends,则它的父类是java。lang。object
//可以使用Ctrl+T方便的查看继承结构;
//instanceof是二元运算符,左边是对象,右边是类;当对象是右面类或者子类所创建的对象的时候,返回true,否则返回false;
//override重写方法,子类再重写父类方法时 方法名,形参列表相同,返回值类型和声明异常类型,子类小于等于父类。访问权限子类大于等于父类;

Object类中定义有:public boolean equals(Object obj)方法,提供定义“对象内容相等”的逻辑;
*

  • super关键字,
  • 1.用来调用父类中被掩盖(重写)的普通方法,super.f();
  • 2.构造方法的第一句总是super()来调用父类对应的构造方法,所以流程就是先向上追溯到Object,然后再依次向下只想类的初始化块和构造方法,直到当前的子类为止。(静态初始化块的调用顺序与构造方法的调用顺序一样)
  • 属性/方法的查找顺序,先找当前类里面有没有要找的属性h,依次上溯每个父类,如果直到Object类也没有找到属性h,则报错(与构造方法和静态初始化块的调用顺序相反)
  • 封装,提高代码的安全性,提高代码的复用性,“高内聚”:封装细节,便于修改内部代码,提高可维护性;“低耦合”:简化外部调用,便于调用者使用,便于协作和扩展。
  • private 表示私有,只能被自己的类访问调用,,,,,,这个时候子类拥有父类的一切属性,包括私有属性,但是无法访问调用
  • default 不加访问控制符时候默认是此项,只有同一个包的类可以访问
  • protected 表示可以被同一个包的类或者其他包中的子类访问
  • public 表示可以被该项目所有包中的所有类访问
  • 实际工作中,通常将类中的属性设为私有,然后提供相应的set和get方法,如:
  • public class person{
  • private int id;
  • private String name;
  • private int age;
  • private boolean man;
  • public void setName(String name){
  •  this.name=name;	
    
  • }
  • public void setAge(int age){//这样做以后就可以对age做一些限制条件
  •  if(age>=0&&age<130){
    
  •  	this.age=age;
    
  •  }
    
  •  else System.out.println("请输入正常的年龄");
    
  • }
  • public String getName{//用来获得姓名的get方法
  •  return this.name;
    
  • }
  • public int getAge(){//用来获得年龄的get方法
  •  return this.age;	
    
  • }
  • }
  • 对于boolean类型是set,is方法而不是set get方法。
  • 善用Source快捷键生成方法;

/**多态:

  • 多态是方法的多态,不是属性的多态(多态与属性无关)
  • 多态的存在有三个必要条件:继承,方法重写,父类引用指向子类对象。
  • 父类引用指向子类对象后,用该父类引用调用子类重写的方法,此时多态就出现了。

*/

你可能感兴趣的:(java)