• 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.

     

  • 相关阅读:
    Java中List集合去除重复数据的方法
    ActiveMQ消息中间件Producer和Consumer
    JMS Activemq实战例子demo
    利用正则表达式判断输入内容是否全中文
    纯js的右下角弹窗
    java开源项目
    linux部署jdk-tomcat
    你的主机中的软件中止了一个已建立的连接。
    Centos编译安装 LAMP (apache-2.4.7 + mysql-5.5.35 + php 5.5.8)+ Redis
    在LAMP的生产环境内添加PHP的cURL扩展模块
  • 原文地址:https://www.cnblogs.com/stellar/p/5152165.html
Copyright © 2020-2023  润新知