Java OOP 思想解析

因为有着一年半的iOS开发经验(OC也是一门面向对象的语言)所以在对Java的面向对象的理解上也是有着自己的理解,今天就和大家分享一下。

面向对象中最为重要的三大思想就是:继承、封装、多态。本文将以一个实例场景来分析Java中的OOP。现有一个场景:学校人员管理。

首先分析出此场景所包含的角色类别:学生,老师,校长。那么我们可以为每个角色类别创建对应的类(具体相同特征或者行为的一种抽象)。学生(Student)、老师(Teacher)、校长(Headermaster)现在我们可以来分析一下这些类有没有一些共同的属性比如:姓名(name)、年龄(age)、性别(sex)等,因此我们就可以采用继承的思想,创建一个基类,让其他的类都继承这个基类(Person类),把共同的属性和方法就写在这个基类里面,其子类自动地共享基类中成员属性和成员方法。对应的目录如下


目录

在基类的基础上,我们可以为每个类增加自己特有的属性和方法。

我们以Person类和Student类还有Teacher类来分析封装和多态的概念

1.Person类

person类(省略set、get方法)

2.Student类

student类

3.Teacher类


teacher类

4.测试方法

public static void main(String[] args) {

Person person = new Student("xiaoming", "male", 12);

person.roleDescribe();

// person.scoreDescribe(); // 错误

Person teacher = new Teacher("MSWang", "female", 43);

teacher.roleDescribe();

Student xiaodong = new Student("xiaodong", "male", 13);

xiaodong.roleDescribe();

xiaodong.setScore(95.6);

xiaodong.scoreDescribe();

}

运行结果:

i am a student

i am a teacher

i am a student

i get 95.6!!

我们来分析一下:

多态:通过基类(Person)去创建子类(Student、Teacher)的对象,并且调用一个同名的方法roleDescribe()。由于子类中都覆盖了此方法所以此方法的效果会有多种形态,此过程便是多态。

封装:封装就是把数据和过程封装起来,对数据的访问只能通过已经定义的接口。在Java中可以通过public\private\protected 来实现封装。比如:Person类的name,age,sex都是私有属性,这是对属性的封装。对外界提供方法的封装,可以通过提供的方法对name,age,sex进行设置和获取。

但是看看Teacher类可以发现并没有提供薪水的(salary)的get方法,那是因为老师不想被其它人知道他的工资。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,765评论 18 399
  • 2014年的苹果全球开发者大会(WWDC),当Craig Federighi向全世界宣布“We have new ...
    yeshenlong520阅读 2,311评论 0 9
  • 要点: 函数式编程:注意不是“函数编程”,多了一个“式” 模块:如何使用模块 面向对象编程:面向对象的概念、属性、...
    victorsungo阅读 1,562评论 0 6
  • 一. Java基础部分.................................................
    wy_sure阅读 3,835评论 0 11
  • 今天应该开始第三遍阅读,但我没有急于开始读。最近,我将这本书时刻带在身边,今天也是,看着他好几次,脑子里在想: 1...
    追追风的冰阅读 277评论 0 1