封装

访问修饰符来规定一个类里面能看到什么,能暴露什么

  • private:表示私有的,表示类访问权限,只能在本类中访问,离开本类之后,就不能直接访问
  • protected:表示包访问权限,同包中的可以访问,不同包不能访问,继承也可以访问
  • public:表示全局,可以公共访问权限,使用了public修饰,则可以在当前项目中任何地方访问
  • 默认:表示包访问权限.访问者的包必须和当前定义的包相同才能访问,继承不能访问
作用域当前类同一包中子孙类其它包
public可以访问可以访问可以访问可以访问
protected可以访问可以访问可以访问不能访问
private可以访问不能访问不能访问不能访问
默认可以访问可以访问不能访问不能访问

给一个private修饰的字段提供get与set方法叫做属性,一般属性都是私有的

this

在一个方法当中要给变量赋值,他会先到方法当中找有没有该变量,如果有,就该方法内部的变量赋值,如果没有,它就往它上一级去找

在方法当中加上了this.就代表直接给对象当中的字段赋值

this代表当前使用对象的地址(就是当前正在使用的对象)

作用

帮我们区分成员变量和局部变量的二意性,必须使用this

在同类中,实例方法的调用,前面其实是有this,可以省略

this可以作为参数传递

可以当做返回值返回

static 不能和this一起使用 ,this是代表当前使用的对象,而static是属于类的

构造重载互调,this();此时this代表的是构造器名,必须写到第一行

//在一个构造器当中调用另一个构造器
int age;
String name;
User(String name){
    this.name=name;
}
User(String name,int name){
    this(name);//根据参数会自动判断调用的构造器,这里必须放在第一行,放在其他地方会报错
    this.age=age;
}

继承

从已有类当中派生出新的类,新的类吸收已有类当中的状态和谢伟,并扩展出新的能力

父类:存放共同的状态和行为

被继承的类我们称为父类或超类,基类,拓展类

子类:存放自己的方法

extends表示继承,后面是父类,前面是子类

子类可以使用父类当中的哪些成员
如果父类中的成员使用public修饰符,子类继承
如果父类的成员使用protected修饰,子类也继承,不通包也继承
如果父类和子类在同一包中,此时子类有可能继承父类中默认的成员,不同包不能继承默认成员
如果父类的成员使用了private修饰,子类打死都继承不到,因为private只能在本类中访问
父类的构造器,子类也不能继承,因为构造器和当前的类名相同

覆盖

子类扩展了父类就获得了父类的方法和成员变量,可是父类当中的一些方法不适合子类本身,不适合子类的方法,可以覆盖,重新定义这个方法,我们称子类重新定义父类当中方法的过程为方法的覆盖

覆盖的原则

覆盖的方法必须要跟父类当中的方法名相同(签名方法名称+参数)

覆盖的方法返回值类型必须要和父类一样

覆盖的方法访问权限必须要比父类大或者一样大!!!!!!!

判断是否为覆盖的方法在子类方法之前加上@Override

super

super代表父类对象,到父类当中去找指定的方法,

super();代表调用父类的构造方法

super是父类对象的内存地址

内存分析

在类中加载字节码时,会先判断有没有父类

如果有,会先把父类加载城字节码放到内存中,任何再去把自己加载到内存当中

如果一个类有父类会先执行父类的构造器(子类没有构造器的情况下)默认等于写Classes(){super()}

new子类的时候先创建父类对象再创建自己

隐藏字段

当父类的字段在子类当中重写之后,子类不能直接调用父类的字段,必须要super来去掉用

this.字段或方法先到奔雷当中去找指定的内容,如果没有,再去父类当中找,如果父类有再去看一下父类允不允许,如果允许就使用父类的

super直接到父类当中去寻找

使用super.字段名 可以访问父类被隐藏的字段

子类和父类当中有相同的静态方法,这时候我们称它是方法的隐藏

object类

object类时java语言的跟类,要么是一个类的直接父类,要么就是一个类的间接父类

class Obj{}等价于class Obj extends Object{}

Object本身是指对象的意思,我们发现所有的对象都具有某一些共同的行为,我们抽象出一个类,:Object,表示对象类.其他都会继承与Object类,也就拥有了Object类当中的方法

Object在import java.lang这个包中,jvm会自动导入

Last modification:February 28, 2020
如果觉得我的文章对你有用,请随意赞赏