zoukankan      html  css  js  c++  java
  • day05(面向对象开始)

    一、面向对象的特征

    1.封装(encapsulation)

    2.继承(inheritance)

    3.多态(polymorphism)

    开发的过程:其实就是不断的创建对象,使用对象,指挥对象做事情。

    设计的过程:其实就是在管理和维护对象之间的关系。

     

    二、用面向对象的思想描述事物

    1.类定义:

    属性:类中的成员变量

    行为:类中的成员函数

    public class Car {
        String color;    // 成员变量
        int num;          // 成员变量
        // 成员函数
        void run() {
        System.out.println("running");
        }
    }    

    2.创建对象:

    class CarDemo {
        public static void main(String[] args) {
            // java 中创建对象,使用new关键字。在堆内存中开辟了空间。产生了一个实体。
            Car c = new Car();
            //为了方便使用生产的汽车,就起了一个名字。
            //那么c是什么类型,是Car类型。叫做类类型变量。
            //注意 c是持有的引用,新生产的汽车并没有直接赋值给c,持有的只是一个引用。c就想电视遥控器一样。
            c.run();  //使用对象的功能。
        }
    }

    3.对象成员的调用:

    public class CarDemo {
        public static void main(String[] args) {
            Car c = new Car();
            //对象名.成员变量名将返回成员变量中存储的数值
            int num=c.num; 
            System.out.println(num);
            
            //对象名.成员变量名,也可以给成员变量赋值
            c.num = 4;
            c.color = "black";
            
            //对象名.成员方法();
            c.run();
        }
    }

    三.例子:需求: 使用java描述一个车与修车厂两个事物, 车具备的公共属性:轮子数、 名字、 颜色 ,还具备跑的功能行为。跑之前要检测轮子是否少于了4个,如果少于了4个,那么要送到修车厂修理,修车厂修理之后,车的轮子数要补回来4个。 然后车就继续的跑起来。修车厂: 具备公共属性: 名字、 地址、 电话。公共的行为: 修车。

    public class Test {
        public static void main(String[] args) {
            Car c = new Car();
            c.wheel=4;
            c.name="bmw";
            c.color="red";
            for(int i=0;i<20;i++){
                c.run();
            }
            c.wheel=3;
            c.run();
            Garage g =new Garage();  //新建Garage类型,才能使用repair方法
            g.repair(c);
            c.run();
        
        }    
    }
    
    class Car{
        int wheel;
        String name;
        String color;
        public void run(){
            if(wheel==4){
                System.out.println(name+"running");
            }else{
                System.out.println("赶紧去修理");
                
            }
        }
    }
    
    class Garage{
        String name;
        String address;
        String tel;
           
        public Car repair(Car c){         //返回Car类型(注意)
            c.wheel=4;
            System.out.println("修好了");
            return c;
        }
    }

    初学者的经典错误:

    1. 变量在同一个作用域(大括号)上是可以直接访问的。
    2. 如果一个类要访问另外一个类变量时,那么这时候就只能通过创建对象进行访问。(仅对于目前正确)

    内存分析1

    四.内存分析

    1.

    2.

    3.

     

  • 相关阅读:
    【洛谷P1005】矩阵取数游戏
    【洛谷P1966】火柴排队
    【题解】洛谷P1731 [NOI1999] 生日蛋糕(搜索+剪枝)
    【题解】洛谷P3627 [APIO2009]抢掠计划(缩点+SPFA)
    【题解】洛谷P1262 间谍网络 (强连通分量缩点)
    【题解】洛谷P3200 [HNOI2009] 有趣的数列(卡特兰数+质因数分解)
    点双连通分量 [HNOI2012]矿场搭建
    分块 公主的朋友
    [置顶] 数学的坑,一点点来填
    大暴搜 [NOIP2009]靶形数独
  • 原文地址:https://www.cnblogs.com/stellar/p/5152165.html
Copyright © 2011-2022 走看看