标签:自动 cal str 总结 出栈 ali null 默认方法 get
1.子类在同一个包下面能够范文父类除了私有private修饰的所有属性和方法
2.在不同包下面,子类对象只能访问public修饰的属性和方法
3.在子类内部,如果不同包的情况下,可以访问protected修饰的属性和方法,但是不能访问默认的访问修饰符修饰的属性和方法
4.子类在初始化的时候会先调用父类的默认不带参数构造器,如果没有,就会报错,我们只有人为的修改
(1).将父类添加一个无参数的构造器
(2).在子类构造器中手动使用super()声明调用哪个父类的构造器
当对象初始化之后,成员变量就会有初始值
String null 整型 0 浮点型 0.0 boolean false char (char)0
局部变量
1.定义的位置不一样 局部变量:在方法的内部 成员变量:在方法的外部,直接写在类当中
2.作用范围不一样 局部变量:只有方法当中才可以使用,出了方法就不能再用 成员变量:整个类全都可以通用。
3.默认值不一样 局部变量:没有默认值,如果想要使用,必须手动进行赋值 成员变量:如果没有赋值,会有默认值,规则和数组一样
4.内存的位置不一样 局部变量:位于栈内存 成员变量,位于堆内存。
5.生命周期不一样 局部变量:随着方法进栈而诞生,随着方法出栈而死亡。 成员变量:随着对象创建而诞生,随着对象被垃圾回收而消失。
所有和动作相关的,都应该放入到方法中
对象是类的实例
也都具有属性和方法
对象都是属于某个类
一切皆对象
注意:对象是 new XXX(),而不是具体的哪个名字,名字只是一个引用
Book [] books = new Book[50];
The local variable type may not have been initialized 局部变量还没有被赋值
成员变量当对象初始化的时候会自动给上初始值
局部变量不会自动给初始值
如果要给成员变量赋初始值,就只能写在一行,不能再另外一行重新赋值
就是为了少写方法名,同样的方法名,只要参数不一样,就可以执行不同的操作
在同一个类中
方法名一样
参数不一样 1.参数类型不一样 2.参数个数不一样 3.参数的顺序不一样(不同类型的顺序)
1.继承
2.子类重写父类的方法
3.方法名一样
4.参数类型,参数个数一样
5.返回值一样
6.注意父类private修饰的方法,子类不能重写
7.子类重写方法的访问修饰符可见度,必须必父类方法的访问修饰符可见度高
8.注意:如果只是方法名一样,参数不一样,这个样子是一个子类的重载而已
构造器: 构造器必须和当前的类名相同,因此构造器不能继承!
1.每个类都默认有构造器
2.默认构造方法就是一个无参数的,没有任何函数体的方法
3.自己手动写构造方法
4.构造方法格式: 访问修饰符 类名([参数...参数]){}
5.构造方法可以重载
6.如果我们手动写了一个带参数的构造器,会自动的覆盖系统自带的默认构造器
7.习惯:如果手动添加了一个带参数的构造器,最好写一个无参数的构造器
注意: 在new子集的时候会先调用父集的无参数的构造器,带参数的构造器不会自动调用
所有的属性都是private
为每个属性建立setter和getter方法 (快捷键:shift + alt + s)
这个其实就是为了以后装数据用的一个类
向上转型
向下转型
转型需要的条件:
1.继承关系
2.要有相互引用的关系
3.查看内存图形
代表当前对象本身
有时候需要把当前调用对象进行传递,那么就可以使用this替代当前调用对象
在构造器中可以使用this([参数])调用本类的其他构造器
指代父类
super() 调用父类的构造器
super()如果放在子类中调用,只能放在子类构造器代码的第一行
只要使用new关键字,就是创建一个新的对象
要注意一个问题.不要觉得有时候参数需要一个对象,就直接new 一个对象传过去
1.静态的属性和静态的方法属于整个类
2.静态的值只有一个(基本数据类型可以看出此特点)
3.静态的值只会初始化一次(引用数据类型)
4.静态属性,方法或者静态块会在jvm加载的时候就加载
5.静态变量不能加在方法里面
6.静态方法不能重写
一般情况下,静态的常量属性,我们一般写为 public static final 数据类型 大写常量名 = 值
判断某个对象是不是某一个类型
1.可以用来修饰变量,如果修饰变量,这个变量我们就称之为常量,值不能被修改,而且常量必须赋初始值,一般情况下,常量我们会定义为 public static final 数据类型 大写常量名 = 值
2.如果final修饰方法,表示这个方法不能被重写(实现)
3.如果final修饰类,表示这个类不能被继承
所有类的父类
组合(has-a):一个类是另一个类的属性
依赖(user-a):一个类是另外一个类方法的参数
1.抽象方法一定在抽象类中
2.抽象类和抽象方法肯定是被abstract修饰的
3.抽象类不可以用new关键字实例化,实例化一个抽象类没有任何意义
4.如果一定要用抽象类,那么可以使用多态的方式
5.虽然抽象类不能实例化,但是也是有构造器的
6.抽象方法不能被private修饰
7.抽象方法不能被static修饰
总结:1.抽象类就是用来被继承的 2.抽象方法就是用来被实现的 3.实现多态
1.接口中的变量全部是静态常量
2.接口中的方法默认是抽象方法
3.JDK1.8之后可以手动声明默认方法和静态方法
4.接口可以多实现,一个类可以实现多个接口
5.接口与接口之间使用extends
标签:自动 cal str 总结 出栈 ali null 默认方法 get
原文地址:https://www.cnblogs.com/hujiatao643414333/p/11968454.html