概述
Java是典型的面向对象的语言,作为面向对象的语言,其必定有三大特征:封装、继承和多态。今天就记录一下我的学习笔记
封装
1,作用
保证内部结构的安全;屏蔽复杂,暴露简单。封装实际上就是将属性私有化,仅对外提供一个简单的访问入口。
2,步骤
1)属性私有化
2)对外提供简单访问入口
3,意义
那么,为啥要对属性进行私有化呢,还是为了数据安全,如果属性是公开的,那任何类都可以对其进行修改/访问,那数据就缺乏安全性,所以将类的属性进行私有化,即用private修饰
另一方面,我们不可能定义一个属性出来,只给本类访问,而让外部类完全不能访问,所以就需要对外提供一个公开的访问入口,让外部类间接实现对其的访问。
下面是一个封装的实例:
继承
1,作用
1)基本作用:子类继承父类,代码可以复用
2)主要作用:覆盖和多态都是基于继承为前提的
2,格式
class B extends A{
//b继承a
//Java中继承只支持单继承
}
3,意义
继承划分了类的层次性,不具有继承功能的语言不能称之为面向对象程序设计的语言。
继承实现了子类可以复用父类的内容,不必一切从零开始。
下面是一个封装+继承的实例:
class A{
private int age;
public A() {
}
public A(int age) {
this.age = age;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
}
class B extends A{
private String name;
public B() {
}
public B(String name ) {
this.name = name;
}
public B(String name, int age) {
this.name = name;
this.setAge(age);
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void doSome() {
//错误:不能直接访问父类的私有成员
//System.out.println(age);
//可以通过下面方式间接访问
System.out.println("姓名:" + this.getName() + ", 年龄:" + this.getAge());
}
}
多态
1,作用
在面向对象语言中,接口的多种不同的实现方式即为多态。它是面向对象程序设计(OOP)的一个重要特征。
2,用法
父类型引用指向子类型对象(包括编译阶段【静态绑定父类型方法】和运行阶段【动态绑定子类型方法】。
3,实例
public class text {
public static void main(String[] args) {
//下面这行代码实现的就是多态
Animal a1 = new Cat();//编译时是动物,运行时是猫
a1.move();//猫在河边走
}
}
class Animal{
public void move() {
System.out.println("动物在移动");
}
}
class Cat extends Animal{
public void move() {
System.out.println("猫在河边走");
}
}