Java学习的第六天:类与对象,构造器,内存分析Java,继承,封装,多态,super,方法的重写。
类与对象:
在Java程序中,类就是值用Class修饰的对象,同时也是一个比较抽象的概念;就比如说我们日常生活中的一些事物:
动物,植物,人,手机,电脑等这样的。
对象: 在Java程序中就是值一个具体的事物,就好比一个人的名字,有个人的名字叫做 “张三” 而这个时候的对象就是张三,具体的直带一个人:
它们之间的区别:
类是一个抽象,一个模板;
对象是一个具体的实例,
方法:
方法的定义,调用:
对应的引用:引用类型与基本类型
对象是通过引用老操作的 ———》 栈-》堆:
属性:
字段(Field)成员变量:
默认的初始值:
数字: 0 或 0.0
char 00000
boolean false
应用类型: null
对象的创建和使用:
必须是通过new来进行创建的,实例
Person person=new Person();
对象的属性值调用: person.name;
对象的方法的调用: person.sleep();
类
静态的属性: 属性;
动态的属性: 方法;
三大特征:
继承,封装,多态;
对象的属性: 构造器:
并且对于构造器这一部分的内容是必须要好好掌握的;
内存分析,对应的是Java程序代码的一个运行过程:
一个方法是在一个栈中运行的,但是所创建出的对象是在堆中所运行的。
# 封装:
也就是该露的露,该藏的藏,
里面也有一句话,就是“高内聚,低偶合”
高内聚的意思就是:在一个Java程序中,就是值内部的数据细节部分自己操作,不允许被外部操作。
低耦合:就是值将一个代码仅露出一小部分方法出来,供外部使用;
封装:
就是将数据进行隐藏起来:
数据的隐藏)
通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息的隐藏。
属性私有:get/set private
封装的意义: 就是提高程序的安全性,保护好数据;
2:隐藏代码的实现细节
3: 统一接口
4.系统的可维护增加;
继承:
就是
就是指继承父类的方法,但是有些东西是无法继承的,就是私有化的。
继承:继承就是扩展的意思:子类是副类的扩展;
并且在 Java程序中,只有单继承,没有多继承
这个是类与类之间的关系;
# Java代码的修饰符:
public-》 protected——》default-》priva;属性范围从大到小;
注意:
在Java的程序中,所有的类都是继承 Object类
重写方法的重写,与属性值无关:
一个对象的实际类型是确定的
可以指向引用类型就不是了
super
this与super之间的区别:
this是访问的当前这个类的属性,也就是当前这个类的属性:
super 就是调用父类的属性:
super就是调用父类;
其次就是调用父类的super就必须要使用在第一行,如果不是放在代码的第一行,就是使得代码报错;
super();就是调用父类的无惨构造方法。
且在使用的过程中,就是必须要吧父类的无惨构造写好。
如果不写的话,那么子类是无法调用super()方法。且子类也不能书写无惨构造函数
super注意点:
1、super调用父类的构造方法,必须在构造方法的第一个
2、super 必须只能出现在子类的方法,或者构造方法中
3、super和this不能同时出现在同一个构造方法中
this
代表的对象是不同:
this:本身调用者这个对象
super:代表父类对象的引用
前提:
this:没有继承也可以使用
super:只能在继承条件下才可以使用
构造方法:
this();本类的构造
super ();父类的构造!
方法的重写:
重点:-----------》关系到多态:
只是针对的是非静态的方法:
并且针对的修饰词都要是 public
总结:
重写: 需要有继承关系,并且是子类重写父类的方法;
1、方法名必须相同
2、参数列表必须相同
3、修饰符: 范围可以扩大,但是不能缩小
4、抛出的异常:范围,可以被缩小,但是不可以扩大。
重写:子类的方法要与父类必须一直,
为什么需要重写:
1、子类的功能--》不一定需要,或者不一定满足。
重写方法的快捷键:
Alt+Insert ——》 override;
多态: