• 《Java从入门到放弃》JavaSE入门篇:面向对象语法一(入门版)


    前一次简单说明了一下面向对象编程的概念,今天我们就把这些概念通过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();
             
        }
    }

    运行结果:

    wKioL1muSWSSrOpxAAAlkaUpMFQ112.png

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

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


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

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

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

    wKioL1muTwewewmDAAIJpA8VcBA875.png


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

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

    wKiom1muUV7B6j_CAAA2Mh3Ipms158.png

    女性:

        属性:姓名,年龄,身高

        方法:自我介绍()

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

        特有属性:颜值

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

        特有属性:霸气值

        特有方法:狂化()

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

        特有属性:性感值

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

        特有方法:卖萌()

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

        特有属性:悟性

        特有方法:打击学渣()

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

        特有方法:抠脚()


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

    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();//调用自已特有的方法
             
        }
    }

    运行结果:

    wKiom1muaJLyWQa4AAAmw2irQC8560.png

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

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

  • 相关阅读:
    函数声明与表达式
    js数组方法总结
    JavaScript中对象的属性
    微信小程序分辨率的问题
    排序算法---快速排序
    排序算法---归并排序
    iOS 解决1。返回时的黑边问题、2。controller的抖动问题
    UITableViewCell的separator延伸到屏幕两端
    延迟1秒
    动态计算文字的高度
  • 原文地址:https://www.cnblogs.com/yixueyuan/p/7479618.html
Copyright © 2020-2023  润新知