面向对象

来源:互联网 发布:高斯图像金字塔算法 编辑:程序博客网 时间:2024/05/29 18:26

面向对象的编程:

1.什么是面向对象?

      就是像正常人一样认识世界,思考问题
      所有事情/任务,都是由不同的人或者事物,相互协作,分工明确的情况下完成的
 * (1)不同的人或者事物——代码中不同的类的对象
 * (2)相互协作——不同的对象互相调用
 * (3)分工明确——不同的类负责不同的事情,理论上——一个类的对象是一种实体物体的存在,一个方法只完成一件事情。

2.面向对象的开发的步骤:

 * (1)OOA——面向对象分析——需求分析
 * (2)OOD——面向对象设计——代码设计
 * (3)OOP——面向对象的编程——代码开发

3. 面向对象编程的特点——封装、继承、多态

   (1)封装:将类的一些敏感信息隐藏在类的内部,不让外界直接访问, 但是可以通过当前类提供的setter/getter方法间接访问 。我们可以并且有可能在方法中,添加自己的限制,在一定程度上,提高的代码的健壮性、安全性。

   (1.1)封装:private--setter/getter

   (1.2)封装的步骤:所有属性私有化,每个属性添加setter/getter方法【可选】

代码实现:

    public class SupperMan extends Object{

               //属性
               private int id;// 有编制
               private String position;// 职位
               

               //setter/getter方法
               public int getId(){
                    return id;
               }
 
               public void setId(int id) {
                    this.id = id;
               }
 
              public String getPosition() {
                    return this.position;
                }
 
              public void setPosition(String position) {
                      this.position = position;
               }

      }

  (2)继承:extends,表示子类继承父类
      (2.1) 可以继承父类的属性、方法;但是不能继承父类的构造方法  
      (2.2) 可以在继承父类的方法基础上,重写父类的方法,在具体执行时,执行子类重写的方法
      (2.3) 子类可以定义自己的属性、方法    
      (2.4) Java中所有的类,如果没有显式的定义继承自谁,默认都是从Object继承而来的
      (2.5) Java中,每个类,都只能继承一个类——Java的单继承机制 
代码实现:
       public  class  SupperClass{
             public void eat(){
                 System.out.println("supperClass在吃。。");
              }

              public void play(){
                 System.out.println("supperClass在玩");
              }
       } 
      /*
       *子类继承父类
       */
       public void ChildClass extends SupperClass{
             @override  //方法重写-方法覆盖
             public void eat(){
                   System.out.println("ChildClass在吃东西");
             }
             /*
              *子类自己定义的方法
              */
             public void fly(){
                    System.out.println("ChildClass在飞翔..");
             }
       }
       /* *
        *  启动程序的入口
        */
       public class Main{
              public static void main(String [] args){
                       ChildClass cc = new ChildClass();
                       cc.eat();
                       cc.play(); //从父类继承的方法
                       cc.fly();
              }

      }
     

0 0
原创粉丝点击