zoukankan      html  css  js  c++  java
  • 面向对面的三大特性

    1.封装

      a.把类中的一些细节描述隐藏内部,用户只能通过接口来访问类中的内容,这种组织模块的方式叫“封装”。

      b.封装是信息隐藏的一种方式。留给用户访问对象的接口(简称API),内部信息外部不可直接访问。

      c.封装可以通过"private"关键字来实现

      代码示例演示:

      

    /**
     * Created by Pres_cheng on 2016/8/24.
     * 演示java的封装与通过接口调用封装的属性
     */
    public class Main {
    
        public static void main(String[] args) {
            //实例化People对象
            People people = new People();
            //通过接口调用People类里封装的name属性
            people.setName("程其春");
            System.out.print(people.getName());
        }
    }
    
    /**
     * 定义一个People类
     */
    class People {
        //将People类中的名字属性封装
        private String name;
    
        //定义接口方法
        public void setName(String name) {
            this.name = name;
        }
    
        public String getName() {
            return name;
        }
    }

    2.继承

      a.为了代码的复用,我们可以将一个类使用另一个类的属性和方法,这样的行为我们称为“继承”。

      b.继承有两种方式:单继承和多继承

        单继承:子类只继承自一个父类

        多继承:一个子类同时继承多个父类

      c.继承通过"extends"关键字来实现

      代码示例演示:

      Main类

      

    public class Main {
        public static void main(String[] args) {
            //实例化一个People对象
            People people = new People();
            people.run();
    
            //实例化一个Men对象
            Men men = new Men();
            //子类继承父类可调用父类的方法和属性
            men.run();
            System.out.println(men.getFatherName());
        }
    }

      People类

      

    /**
     * Created by Pres_cheng on 2016/8/24.
     * 父类:People类
     */
    public class People {
        //定义一个name属性
        public String name = "程其春";
        //定义一个run方法
        public void run(){
            System.out.println("People run");
        }
    
    }

      Men类

      

    /**
     * Created by Pres_cheng on 2016/8/24.
     * 子类:Men类继承父类People
     */
    public class Men extends People {
    
        @Override
        public void run() {
            //super.run();
            System.out.println("men run");
        }
        //定义接口方法
        public String getFatherName(){
            return name;
        }
    }

    3.多态

      a.什么是多态? 通俗的讲“类的不同对象对同一消息做出不同的反应”。例如:水在不同状态下会有固态、液态、气态三种状态

      b.为什么引入多态的概念?让程序运行起来更灵活

      c.多态分两种:静态多态和动态多态 

      静态多态是编译时多态:方法重载

      动态多态是运行时多态:方法重写和接口的引用

      代码示例演示:

      Main类

      

    public class Main {
        public static void main(String[] args) {
            Car car = new Car();
            car.run();
            //多态性 实例化motorcycle对象
            Car motorcycle = new Motorcycle();
            motorcycle.run();
            //实例化bicycle对象
            Car bicycle = new Bicycle();
            bicycle.run();
        }
    }

      Car类

      

    public class Car {
        public void run(){
            System.out.println("car run");
        }
    }

      Motorcycle类

      

    public class Motorcycle extends Car {
        @Override
        public void run() {
            System.out.println("motorcycle run");
        }
    }

      Bicycle类

      

    public class Bicycle extends Car {
        @Override
        public void run() {
            System.out.println("bicycle run");
        }
    }
  • 相关阅读:
    函数后面加const
    关于C++ const 的全面总结
    待下载的东西
    GDI与DC
    Windows GDI与DC
    认识句柄
    什么是客户区/非客户区
    OpenCV 2.4.8 +VS2010的开发环境配置
    对话框类的数据交换和检验
    怎么调处vs2010的MSDN帮助文档
  • 原文地址:https://www.cnblogs.com/prescheng/p/5804800.html
Copyright © 2011-2022 走看看