新手论(OOP)的三大特性的学习笔记
通过对java三大特性的一些学习后,并学会运用到实际的操作之中,加深印象,以便后续思考
- 三大特性的定义
- 特性的重要性
- 几大特性的代码演示
- 面向实际的运用
- 注意的一些事项
- 难点
- 学习心得
三大特性的定义
- 封装
- 定义:就是把对象的属性和方法结合成一个独立的相同的单元,隐蔽对象的内部细节
- 结合对象的属性和方法
- 信息隐蔽,对外形成一个边界限制接口和外部发生关系。
- 定义:就是把对象的属性和方法结合成一个独立的相同的单元,隐蔽对象的内部细节
- 继承
- 定义:有一个基类,此类反映事物的共同性质,在此基础上反映特殊的类,老师之于职工。包含
- 方法的继承
- super关键字的使用
- this
- 定义:有一个基类,此类反映事物的共同性质,在此基础上反映特殊的类,老师之于职工。包含
- 多态
- 定义:简单来讲就是多个状态,或者多个形态。同一个事物对内有不同的表现形式,对外有多种具体实现
- 方法重载
- 方法覆盖
- 多态参数
- 定义:简单来讲就是多个状态,或者多个形态。同一个事物对内有不同的表现形式,对外有多种具体实现
特性的重要性
- 封装:有效的避免了外部的一些错误所导致的的不好的影响,减少代码的查错和排错的难度
- 继承:减少代码的再次编写所导致的繁琐工作量,继承机制是面向对象程序设计不可缺少的关键概念,是实现软件可重用的根基,是提高软件系统的可扩展性与可维护性的主要途径。
- 只支持单继承,只能有一个父类,使用extends来实现继承
- 多态:是面向对象的三大重要特性之一,消除类之间的耦合作用,编译时多态和运行时多态
- 可替换
- 可扩充
- 灵活性
- 接口性
- 简化性
几大特性代码的演示
- 封装
public class EncapsulationTest{
private String className;
public String getClassName(){
return name;
}
public void setClassName(String name){
this.className = name;
}
}
- 继承
public class Employee{
private String name;
private int age;
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age = age;
}
public void introduce(){
System.out.println(name+"的工资是10000块"+age+"岁"+"请多多指教")
}
public class JavaDesigner extends Employee(){
private String subject;
public String getSubject(){
return subject;
}
public void setSubject(String subject){
this.subject = subject;
}
public void overrideTest(){
super.introduce();
System.out.print(this.name+"学习"+this.subjet)
}
}
public class App{
public static void main(String[] args){
JavaDesigner person = new JavaDesigner();
person.setClassName("刘湘");
person.setAge(23);
person.setSubject("java")
person.introduce();
person.overrideTest();
}
}
}
- 多态
实际的运用
面向对象现在可以在互联网的各个地方都可以看到,不管是云栖大会的诸如人脸支付、城市大脑,还是阿尔法go的交互都有涉及,所以这是一个能带来更多思考和人机互动更多的革命
相信在现在互联网如此迅速发展的今天,对我们的要求会越来越高,只有拥有一颗哲学的心和思想才能飞得更高
- 用框架的思维和类似模板的思维来学习
注意的一些事项
- 封装
- 具有关系的双方都要遵守边界这是十分重要的
- 必须要在适当的位置带上访问权限修饰符
- 接口和实现清晰分离而受到保护
- 继承
- 在子类的构造方法中父类的构造方法是最先调用的,super要放在子类构造方法的第一行
- 子类的方法中可以用super调用父类定义的方法和属性
- 默认情况下,在首先调用父类的无参的构造方法
- public、protected、default、private的在同包,非同包,子类和父类中的访问权限
- 构造方法不能被继承
- 多态
- 运行时系统类型
- 编译时系统类型
- -
难点
牢记概念并能熟练运用
学习总结
首先OOP是面向对象的程序语言,那么掌握它是重点也是一个比较难和头痛的问题。重点是什么,重点就是根据对象思考和解决问题,掌握其思想就是要学习其特性,从而更加容易来理解啥是面向对象,Thinking in java,进行设计和开发。难点和头痛的是这个面向对象的过程或者说是抽象的过程也是令大多数人头疼的,虽然都知道这个概念,但是其实连三个特性掌握得不够明白,只能说是皮毛。
其次当讨论到封装、继承、多态的时候,我们不得不说一些相关内容,如下:abstract(抽象对象)、this (本类)、super(父类)、override(方法覆盖)、overload(方法重载)以及构造方法等等概念的学习和掌握,之后的注意事项
所以我对其简单的理解大概就是
OBJECT= Encapsulation+Extend+Polymorphism