• 面向对象的三大基本特征


    面向对象的三大特征是封装继承多态

    封装

    封装指的是将某些信息隐藏在类的内部,不允许外部程序直接访问,但是可以通过该类提供的公有方法,来实现对隐藏信息的操作和访问。
    举个例子,就比如一台手机,内部非常复杂的,一般用户不需要了解它的内部,手机厂商把手机封装起来,对外提供了一些“公有方法”——显示屏、按键、耳机孔等,从而用户就可以很方便的使用手机。

    上代码:

    public class Dog {
        private String name;
        private int age;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    }
    

    这是一个狗狗类nameage都是private,意思就是说除了Dog类本身外,其他任何类都不可以访问这些属性(见Java访问权限),但是这边提供了public的get()set()的方法,可以通过set()方法来对其进行赋值,get()方法来对其进行取值。this是来引用成员变量(见成员变量和局部变量

    public class MyDog {
        public static void main(String[] args) {
            Dog erha = new Dog();
    
            erha.setName("二哈");
            erha.setAge(2);
    
            System.out.println("名字:" + erha.getName());
            System.out.println("年龄:" + erha.getAge());
        }
    }
    

    然后在一个新的类中,new出了一个erha来,利用set()方法来给erha取名叫“二哈”,同时也设置了年龄为“2”,再往下使用了get()方法来获取到了erha的名字和年龄。全程都没有直接使用nameage来赋值取值,而是使用他提供的公有方法get()set()
    运行MyDog输出结果:

    名字:二哈
    年龄:2
    

    继承

    继承可以直接获得父类的属性和方法并进行扩展,从而产生新的类。已经存在的类称为父类,而新的类称为子类。

    上代码:

    public class Husky extends Dog {
        public void destroy() {
            System.out.println("我喜欢拆家");
        }
    }
    

    新建一个哈士奇类,哈士奇也是狗狗,所以继承Dog类。哈士奇喜欢拆家,再给他定义个destroy方法。

    public class MyDog2 {
        public static void main(String[] args) {
            Husky erha2 = new Husky();
            erha2.setName("小二哈");
            System.out.println("我叫" + erha2.getName());
            erha2.destroy();
        }
    }
    

    然后在一个新的类中,new出了一个erha2来。注意这一次类名不是Dog, 而是Husky,这样做就是使得这个erha2不仅可以使用Dog父类的属性和方法,还可以使用Husky子类自己的属性和方法。所以运行MyDog2输出结果:

    我叫小二哈
    我喜欢拆家
    

    多态

    多态是指在父类被子类继承之后,不同子类执行同一操作,可以有不同的解释,产生不同的执行结果。
    详情可参考:再来个小记,Java方法重写(Method Overriding)

  • 相关阅读:
    c# 类型转换符的重载
    C# 串口读写
    STM32 Keil C++编写单片机程序
    C# 静态构造函数的使用
    MvvMlight 学习之 SimpleIoc
    STM32 之 DMA
    STM32 之 SysTick
    突然发现用PHP做多条件模糊查询很简单
    discuz代码转为html代码
    Discuz!开发之HTML转Discuz代码(bbcode)函数html2bbcode()
  • 原文地址:https://www.cnblogs.com/Subaru/p/15509339.html
Copyright © 2020-2023  润新知