前一次简单说明了一下面向对象编程的概念,今天我们就把这些概念通过Java语法来实现,然后看看效果。

来看第一个案例:定义女神类,再根据女神类创建三个女神对象,并使用女神对象的属性和方法。

第一步:定义女神类(因为Java本身没有这个类型,所以我们自己创建这个类型)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/**
 * 女神类
 */
public class Goddess {
    public String name;   //姓名
    public int age;       //年龄
    public double stature;    //身高
     
    /**
     * 自我介绍方法
     */
    public void show(){
        System.out.println("我叫"+name+",今年"+age+"岁,身高为"+stature);
    }
}

 

第二步:创建包含main方法的Test类(main方法相当于程序运行的起始点)

1
2
3
4
5
public class Test {
    public static void main(String[] args) {
 
    }
}

第三步:在main方法创建三个女神类的对象(因构造方法等还没学习,所以使用最基本的语法)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class Test {
    public static void main(String[] args) {
        //创建三个女神类型的对象
        Goddess lin = new Goddess();
        Goddess chang = new Goddess();
        Goddess jia = new Goddess();
         
        //使用对象的属性
        lin.name = "林志玲";
        lin.age = 43;
        lin.stature = 1.73;
        chang.name = "苍井空";
        chang.age = 34;
        chang.stature = 1.55;
        jia.name = "贾玲";
        jia.age = 35;
        jia.stature = 1.66;
         
        //调用对象的方法
        lin.show();
        chang.show();
        jia.show();
         
    }
}

运行结果:

看语法是不是很简单!!!如果不使用面向对象的方式,那我们name要定义三个变量,age或定义三个变量,stature也要三个变量,一共要九个变量,而现在只需要三个Goddess类型的变量就解决问题了,而且属性都是同名的,也方便记忆和使用。

现在又有新的需求出现!!!


以前所有的都是女神,现在需要再细分为御姐和萌妹!(声明:作者不知道这些是什么意思,都是通过网络查询才知道的,作者君是单纯的!!!)

然后和女神平级的还有女汉子,女汉子又分为学霸和屌丝!

女神和女汉子都是女人!!!


最后最后最后,根据现在变化的需求,我们还要考虑到,以后会不会有更多种类的女神出现?比如女王等,还会不会和女神平级的“恐龙”出现?

这些都是有可能的吧,所以我们就考虑把代码做如下修改(用到继承):

女性:

属性:姓名,年龄,身高

方法:自我介绍()

女神:具有女性的所有行为(方法)和特征(属性)

特有属性:颜值

女汉子:具有女性的所有行为(方法)和特征(属性)

特有属性:霸气值

特有方法:狂化()

御姐:具有女神的所有行为(方法)和特征(属性)

特有属性:性感值

萌妹:具有女神的所有行为(方法)和特征(属性)

特有方法:卖萌()

学霸:具有女汉子的所有行为(方法)和特征(属性)

特有属性:悟性

特有方法:打击学渣()

屌丝:具有女汉子的所有行为(方法)和特征(属性)

特有方法:抠脚()


我来写女性、女神和女汉子的代码,剩下的代码相信各位看官能够自己实现了吧。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/**
 * 女性类
 *
 */
public class Woman {
    public String name;       //姓名
    public int age;           //年龄
    public double stature;    //身高
     
    /**
     * 自我介绍方法
     */
    public void show(){
        System.out.println("我叫"+name+",今年"+age+"岁,身高为"+stature+"米.");
    }
}
/////////////////////////////////////////////////////////////////////////////
/**
 * 女神类
 * 继承了Woman类
 */
public class Goddess extends Woman {
    public int faceValue;     //颜值
}
/////////////////////////////////////////////////////////////////////////////
/**
 * 女汉子类
 * 继承了女性类
 *
 */
public class GirlMan extends Woman {
    public int domineeringValue;  //霸气值
     
    public void berserker(){
        System.out.println("霸气值已充满,开始狂化中···");
    }
}

三个类定义好了,其中女神和女汉子类使用extends关键字继承了女性类。继承后,女神和女汉子就可以使用女性类中定义的属性和方法了。

编写测试类代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Test {
    public static void main(String[] args) {
        //创建三个女神类型的对象
        Goddess lin = new Goddess();    //女神对象
        GirlMan jia = new GirlMan();    //女汉子对象
         
        //使用对象的属性
        lin.name = "林志玲";
        lin.age = 43;
        lin.stature = 1.73;
        lin.faceValue = 99;       //颜值 
        jia.name = "贾玲";
        jia.age = 35;
        jia.stature = 1.66;
        jia.domineeringValue = 95;    //霸气值
         
        //调用对象的方法
        lin.show(); //调用父类(女性类)的方法
        jia.show();    
        jia.berserker();//调用自已特有的方法
         
    }
}

运行结果:

至于封装和多态,我们留到下一篇再来介绍吧。

“软件思维”博客地址:51CTO博客园,感兴趣的小伙伴可以去看相关的其它博文。

《Java从入门到放弃》JavaSE入门篇:面向对象语法一(入门版)的更多相关文章

  1. dotnet 从入门到放弃的 500 篇文章合集

    本文是记录我从入门到放弃写的博客 博客包括 C#.WPF.UWP.dotnet core .git 和 VisualStudio 和一些算法,所有博客使用 docx 保存 下载:dotnet 从入门到 ...

  2. Java性能测试从入门到放弃-详解篇

    Jmeter组件分类说明 Jmeter的组件可以放在任意位置 线程池:用于创建线程.每个线程会"批次顺序"执行任务,因此后面的任务可根据前面的任务决定具体的操作.          ...

  3. 函数响应式编程(FRP)从入门到”放弃”——基础概念篇

    前言 研究ReactiveCocoa一段时间了,是时候总结一下学到的一些知识了. 一.函数响应式编程 说道函数响应式编程,就不得不提到函数式编程,它们俩到底有什么关系呢?今天我们就详细的解析一下他们的 ...

  4. python从入门到放弃之线程篇

    一,什么是多线程? 1.多线程的概念? 说起多线程,那么就不得不说什么是线程,而说起线程,又不得不说什么是进程. 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分 ...

  5. 拒绝从入门到放弃_《Python 核心编程 (第二版)》必读目录

    目录 目录 关于这本书 必看知识点 最后 关于这本书 <Python 核心编程 (第二版)>是一本 Python 编程的入门书,分为 Python 核心(其实并不核心,应该叫基础) 和 高 ...

  6. 2018-8-10-dotnet-从入门到放弃的-500-篇文章合集

    title author date CreateTime categories dotnet 从入门到放弃的 500 篇文章合集 lindexi 2018-08-10 19:16:52 +0800 2 ...

  7. Kafka从入门到放弃(三)—— 详说消费者

    之前介绍了Kafka以及生产者,包括它的一些特性和参数,这回写一下消费者. 之前没看得可以点击链接阅读. Kafka从入门到放弃(一) -- 初识Kafka Kafka从入门到放弃(二) -- 详说生 ...

  8. hive从入门到放弃(三)——DML数据操作

    上一篇给大家介绍了 hive 的 DDL 数据定义语言,这篇来介绍一下 DML 数据操作语言. 没看过的可以点击跳转阅读: hive从入门到放弃(一)--初识hive hive从入门到放弃(二)--D ...

  9. Linux Capabilities 入门教程:进阶实战篇

    原文链接:https://fuckcloudnative.io/posts/linux-capabilities-in-practice-2/ 该系列文章总共分为三篇: Linux Capabilit ...

随机推荐

  1. 构建高并发&高可用&安全的IT系统-高并发部分

    什么是高并发? 狭义来讲就是你的网站/软件同一时间能承受的用户数量有多少 相关指标有 并发数:对网站/软件同时发起的请求数,一般也可代表实际的用户 每秒响应时间:常指一次请求到系统正确响的时间(以秒为 ...

  2. CONSOLE_SCREEN_BUFFER_INFO 结构体

    CONSOLE_SCREEN_BUFFER_INFO结构体 来源:https://msdn.microsoft.com/en-us/library/ms682093(v=vs.85).aspx 作用 ...

  3. unrecognized font family "iconfont2"

    起因:使用React Native开发App,需要使用自定义字体iconfont2.ttf,要在xCode中引入该字体 步骤:将字体文件拷贝到项目工程中,在Info.plist文件中添加Fonts p ...

  4. Android studio java.lang.UnsatisfiedLinkError

    最近开始转android Studio 本来以为新的开发工具会大大的提高效率 .结果我错了.今天踩了一天的坑. 我的项目中用到了so的文件.通常情况下在 eclipse中我们在libs/armeabi ...

  5. android调用系统相机进行视频录制并保存到指定目录

    最近在做视频录制上传,调用的是系统的相机. 在做之前查了一些资料,发现好多人遇到保存到指定目录不成功的现象.自己写的时候就注意这些,最后发现他们遇到的问题我这边根本没有.可能是他们写法有问题吧. 下边 ...

  6. NlpirParser智能挖掘平台词性标注新算法

    词性标注是自然语言浅层理解的一个重要环节,它可帮助系统自动判定词语所属的语法范畴,为进一步处理提供更高层面的支持.词性标注主要任务是消除词性兼类歧义,对于新信息检测来说,它的实际意义还在于: (1)能 ...

  7. SSH项目过一段时间之后再访问会报一次Could not open Hibernate session for transaction 异常,Caused by: com.mysql.jdbc.CommunicationsException: Communications link failure due to underlyi,再重新方法即可访问成功(通常出现在过了一晚之后再去访问系统)

    前端时间到客户那去进行项目的上线测试,将项目部署好之后,运行都是正常的,可是每到了第二天早上访问的时候,就会报一个Could not open Hibernate session for transa ...

  8. CentOS 常用命令及快捷键整理

    常用命令: 文件和目录: # cd /home                        进入 '/home' 目录 # cd ..                                ...

  9. Wordpress解析系列之PHP编写hook钩子原理简单实例

    Wordpress作为全球应用最广泛的个人博客建站工具,有很多的技术架构值得我们学习推敲.其中,最著名最经典的编码技术架构就是采用了hook的机制. hook翻译成中文是钩子的意思,单独看这个词我们难 ...

  10. NYOJ--541--最强DE 战斗力(递推)

    最强DE 战斗力 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 春秋战国时期,赵国地大物博,资源非常丰富,人民安居乐业.但许多国家对它虎视眈眈,准备联合起来对赵国发 ...