Java 初次了解面向对象

一、 面向对象的概念

Java是一门面向对象的编程语言。
补充:c语言面向过程;c++:半面向对象半面向过程
面向过程编程

开发过程中所有细节都要编写

假设:使用一台电脑敲代码,其中所有零件都需要自己去造。

面向对象编程

假设:使用一台电脑敲代码,找到卖电脑的人,告诉我需要一台电脑,商家就给我一台电脑,可以直接使用。

把大象装进冰箱怎么实现?


什么是类?

类:人以类聚;一类商品

类:类是一组具有相同属性和行为的对象的集合

手机类

什么是对象?

对象:将类实例化的一个具体体现

对象能将属性和行为具体体现出来

手里面拿的/挂在墙上手机袋里面的

什么是属性?

属性:类的一些特点/特征

颜色,品牌,型号,价钱等

什么是行为?

行为:就是方法,对象能做的动作

打游戏,聊天,刷视频等

总结

以上四个关系:

  1. 类中有属性和方法

  1. 对象由类创建出来,对象内部有它自己具体的属性和方法

  1. 对象可以将属性和行为表现出来

二、 面向对象编程

利用上面知识,完成面向对象编程(OOP)

2.1 以手机为例,完成编程

public class Phone {
    // 属性:可以理解成变量
    // [访问修饰符] 数据类型 变量名;
    // 访问修饰符,可写可不写
    String brand; // 品牌
    double price; // 价钱
    String color; // 颜色
    int memory;   // 内存
     /*
     * String brand;属性后要不要设置值?
     * 不加值String brand;这个手机类新品牌属性固定;
     *   意味着后面通过手机创建出的手机对象的品牌睡醒直接就是“华为”
     * --------------
     * 其实属性设置不设置的,就是一个变量默认值的问题
     */

    /*
     * 方法(今天往后类中的方法不要加static)
     * (自己写练习题时可以加static)
     */
    public void  call(){
        System.out.println("打电话");
    }

    public void play(){
        System.out.println("打游戏");
    }
}

2.2 创建对象

 public static void main(String[] args) {
        // 创建对象的语法
        // 类名 对象名 = new 类名();
        Phone phone = new Phone();
        // 数据类型 变量名 = 值;
        // int[] arr = new int[3];
    }

2.3 使用对象

使用对象就是创建对象(实例化),使用对象就是内部的属性和方法。

属性是静态的描述,名词
行为是动态的活动,动词
double cPrice = car.price;
        String cBrand = car.brand;
        String cColor = car.color;
        String cNum = car.num;

        car.price = 998;
        car.brand = "劳斯莱斯";
        car.color = "黑色";
        car.num = "JX8889";
        System.out.println(car.brand+" "+car.color+" "+car.price+" "+car.num);

2.4 使用方法

phone.call();
phone.play();

三、 内存图

以创建对象过程画图

凡是new都会在内存开辟空间,创建对象,会有地址值
在这同时,对象内部的属性和方法会初始化,赋默认值
完成创建对象,将地址值赋值给对象名
后续通过 对象.属性 找到堆中对象的属性给其赋值
后续通过 对象. 方法找到队中对象的方法让其进栈执行

一个对象的内存图


一个类创建多个对象

public class TestCar {
  /**
   * 一个类可以创建出多个对象
   * 每个对象内部都有属于自己的属性和方法,对象之间互不影响
   */
  public static void main(String[] args) {
    Car car = new Car();
    car.brand = "玛莎";
    System.out.println(car.brand);
    
    Car car1 = new Car();
    car1.brand = "奔驰";
    System.out.println(car1.brand);

    Car car2 = new Car();
    car2.brand = "宝马";
    System.out.println(car2.brand);
  }
}


多个引用(对象名)指向一个对象

public static void main(String[] args) {
    // 对象1
    Car car1 = new Car( );
    // 对象2
    Car car2 = new Car();
    car2.num = "豫A66666";
    // car2被car1赋值,其实是被背后的地址赋值
    // 赋值后,car2和car1执行同一个内存对象
    car2 = car1;

    car1.num = "豫A88888";
    System.out.println(car1 );
    System.out.println(car1.num );

    System.out.println("--------" );
    System.out.println(car2 );
    System.out.println(car2.num );
}

单词

面向对象编程:object-oriented programming
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值