面向对象
构造器:
- 和类名相同
- 没有返回值
作用:
- new 本质在调用构造方法
- 初始化对象的值
注意点:
- 定义有参构造之后,如果想使用无参构造,显示的定义一个无参的构造
- alt+insert 有参构造和无参构造
- this. 只当前类
-
类与对象
- 类是一个模板:抽象,对象是一个具体的实例
-
方法
- 定义,调用
-
对应的引用
- 引用类型:基本类型(8)
- 对象是通过引用来操作的:栈--->堆
-
属性:字段Field 成员变量
- 默认初始化
- 数字: 0 0.0
- char: u0000
- boolean: false
- 引用:null
- 修饰符 属性类型 属性名 = 属性值 (Java赋值操作)
-
对象的创建和使用
- 必须使用new 关键字创建对象,构造器 Person kuangshen = new Person();
- 对象的属性 kuangshen.name
- 对象的方法 kuangshen.sleep()
-
类
- 静态属性 属性
- 动态的行为 方法
封装、继承、多态
封装
- 数据的隐藏,
- 通常,禁止直接访问一个对象中数据的实际表示,通过操作接口来访问
- 程序设计追求“高内聚,低耦合”
继承
//Object是所有类的父类
//子类继承父类 关键字extends
//ctrl+H 继承树
//隐藏代码 super()默认调用父类无参
- Java只有单继承
- 私有的无法被继承
- 关键字 super调用父类属性、方法
- super,调用父类的构造器,必须在子类构造器的第一行 ,this也是
super注意点:
- super调用父类的构造器,必须构造方法的第一个
- super必须只能出现在子类的方法或者构造方法中
- super和this不能同时调用构造方法
Vs this:
- 代表的对象不同:
- this:本身调用这个对象
- super:代表父类对象的应用
- 前提
- this:没有继承也可以使用
- super:只能在继承条件下使用
- 构造方法
- this:本类的构造
- super:父类的构造
重写
- 需要有继承关系,子类重写父类的方法
- 方法名必须相同
- 参数列表必须相同
- 修饰符:范围可以扩大 public>Protected>Default>private
- 抛出的异常:范围,可以被缩小,但不能扩大ClassNotFoundException-->Exception(大)
重写,子类的方法和父类必须一致,方法体不同
子类重写父类的方法,执行子类的方法
为什么需要重写?
- 父类的功能,子类不一定需要,或者不一定满足
Alt+Insert: override
多态
多态注意事项:
- 多态是方法的多态,属性没有多态
- 父类和子类,有联系的类 类型转换异常 ClassCastException
- 存在条件:继承关系,方法需要重写,父类引用指向子类对象 Father f1 = new Son();
不能重写
- static 方法,属于类,不属于实例
- final 常量
- private 方法
子转父 自动转换 可能丢失自己本来的一些方法
父转子 强制转换
static
静态方法可以调用静态,非静态可以调用静态方法
抽象类
关键字 abstrac
package com.opp.demo08;
//abstract 抽象类:类 单继承 (接口可以多继承)
public abstract class Action {
//约束 ~ 有人帮我们实现
//abstract 抽象方法,只有方法名字,没有方法实现
public abstract void doSomething();
//1.不能new这个抽象类,只能靠子类去实现它,可以看成一种约束
//2.抽象类中可以写普通的方法
//3.抽象方法必须在抽象类周
//思考题? 抽象类不能new对象,那存在构造器吗?
//存在意义 抽象出来 提高开发效率
}
接口
接口作用:
1.约束
2.定义一些方法,让不同的人实现
3.public abstract 都是抽象类
4.public static final 所有常量都是
5.接口不饿能被实例化,接口中没有构造方法
6.implements可以实现多个接口
7.必须要重写接口中的方法
内部类
- 内部类可以获取外部类的私有属性
- 通过外部类来实例化内部类
- 外部类可以直接new
异常
-
抛出异常
-
捕获异常
-
异常处理的五个关键字
- try、catch、finally、throw、throws
总结
一个字节(byte)8位(bit)
标签:调用,super,构造,面向对象,子类,父类,方法 来源: https://www.cnblogs.com/woods-/p/16388795.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。