本文主要是介绍【zyc的从零开始】面向对象编程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
面向对象语言的基本特征
1、封装
1)语法:使用private关键字,修饰 字段 和 方法 。只能在当前类中使用。
2)意义 :安全、对类的使用成本降低了。
2、继承
1)什么是继承:就是将共性进行抽取,使用关键字extends来实现继承。
设计一个类表示动物
// Animal.java
public class Animal { public String name; public Animal(String name) { this.name = name; } public void eat(String food) { System.out.println(this.name + "正在吃" + food); }
}
// Cat.java
class Cat { public String name; public Cat(String name) { this.name = name; } public void eat(String food) { System.out.println(this.name + "正在吃" + food); }
}
// Bird.java
class Bird { public String name; public Bird(String name) { this.name = name; } public void eat(String food) { System.out.println(this.name + "正在吃" + food); } public void fly() { System.out.println(this.name + "正在飞 ︿( ̄︶ ̄)︿"); }
}
- 这三个类都具备一个相同的 eat 方法, 而且行为是完全一样的.
- 这三个类都具备一个相同的 name 属性, 而且意义是完全一样的.
- 从逻辑上讲, Cat 和 Bird 都是一种 Animal (is - a 语义).
此时我们就可以让 Cat 和 Bird 分别继承 Animal 类, 来达到代码重用的效果.
2)优点:代码可以进行重用。
3)关键字super:
super表示对父类对象的应用
1.super.data //访问父类的成员变量
2.super.func() //访问父类的成员方法
3.super() //访问父类的成员构造方法
对于this和super的区别请看这里: Java中super和this的详解
4)关键字protected
详情请看这里: 关键字protected详解
tips:
在Java中,只能通过extends来继承一个类,不能继承多个类。【单继承】
想详细了解Java继承请戳这里: Java继承详解
3、组合
和继承类似, 组合也是一种表达类之间关系的方式, 也是能够达到代码重用的效果。
例如表示一个学校
public class Student { ...
}
public class Teacher { ...
}
public class School { public Student[] students; public Teacher[] teachers;
}
组合并没有涉及到特殊的语法(诸如 extends 这样的关键字), 仅仅是将一个类的实例作为另外一个类的字段
组合表示 has - a 语义
在刚才的例子中, 我们可以理解成一个学校中 “包含” 若干学生和教师.
继承表示 is - a 语义
在上面的 “动物和猫” 的例子中, 我们可以理解成一只猫也 “是” 一种动物
4、多态
多态是同一个行为具有多个不同表现形式或形态的能力。
在了解多态前需要先了
这篇关于【zyc的从零开始】面向对象编程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!