类与对象的关系
类里面只有属性还有方法:this.表示student这个类
没有赋值的话,创建好的对象默认初始化为null、0
给小明小红赋值
无参构造器:
定义了有参构造,无参构造默认为空,不然会报错:
赋值走name
构造器总结:Alt+Insert快捷键生成构造器,this.表示当前类的,后面= 的这个值一般是参数传进来的
创建对象内存分析:
类与对象总结回顾:
封装概念:
private:私有的 不能被调用
可以用getname获取这个数据:
set设置数据值,一定要有形式参数string name 然后左边输入名字即可输出:
封装作用
继承概念:
三种输出的方法:
调用父类的构造器必须要在子类的第一行:
super注意点:
super详解
重写不加static输入还是子类
重写注意点
多态概念:
父类的引用指向子类
还可以用object类 是所有类的祖宗类
重写:子类继承父类的所有方法
子类里面重写一下父类方法:只要person和student都有的情况下,子类没有重写父类,他就调用父类的,如果子类重写了父类,它就调用了子类
S2父类的类型person是没有eat方法的,所以调用不了,父类不能调用子类独有的方法
多态注意事项:static 、final 、private方法不能被重写
instanceof:建立一个父类person,两个子类teacher 、student
person和string是同级,编译直接就报错了
看有没有父子关系
低转高不需要强制装换
然后创建一个本地变量就可以使用go方法了
简写
子类转换为父类可能会丢失一下方法
假设是静态变量建议类名.变量很明显让人知道这是一个静态变量,静态变量内存中只有一个,非静态的字段不能这样去用
run方法没法直接调用,需要NEW创建才可以
静态方法static可以直接调用go方法 甚至可以直接用go()调用,非静态的方法可以直接调用静态方法,静态方法不能调用非静态方法,因为静态方法和类一起加载,加载之前还没创建非静态方法
匿名代码块创建person类就已经创建了,并且在构造器前,静态代码块和类一加载就直接执行永久只执行一次,
随机数省略MATH方法,导入包
person类被final定义了就没办法赋值继承了
抽象类概念
接口概念
interface定义:正常的类是蓝色的C,抽象类为2,接口为i
接口默认public,也可以不写
实现了接口的类就要重写接口的方法
多继承
接口中定义的属性都是常量:
接口的作用
内部类概念:
获得外部类的私有属性
JAVA第一章基础面向对象04~76
最新推荐文章于 2023-11-19 22:22:26 发布