Java类与对象

2023-03-28  本文已影响0人  笔头还没烂

一、相关概念

  1. 什么是类

    • 类是模子,确定对象将会拥有的特征(属性)和行为(方法)

    • 类是对象的类型

  2. 什么是对象;

    • 对象是类的实例化表现

    • 对象是特定类型的数据

  3. 类和对象的关系;

    • 类是抽象的概念,描述了一个模板,它限定了一种类型当中应该拥有什么(属性)和能做什么(方法)。对象是一个实例产生的具体体现,是一个看得见摸得着的具体实例。
  4. 什么是面向对象;

    • 关注对象,从计算机的角度而言可理解为,关注现实生活中存在的事物的各方面的信息,从对象的角度出发,根据事物的特征进行相关的程序设计。
  5. 属性

    • 对象具有的各种静态特征(对象有什么)

    • 类的属性是有默认的初始值的 03类属性的默认初始值.png
  1. 方法

    • 对象具有的各种动态行为(对象能做什么)
  2. 关于面向对象的编程

    • 根据需求创建类 --> 实例化对象 --> 完成具体的程序逻辑

二、相关编程思想

  1. 单一职责原则

  2. 里氏替换原则

  3. 依赖倒置原则

  4. 开闭原则

  5. 迪米特法则

  6. 接口隔离原则

  7. 组合/聚合复用原则

三、相关代码演练

  1. 对象实例化

    • 实例化对象的过程可以分为两部分:

      • 声明对象(在内存的栈区进行)

      • 实例化对象(在内存的堆区进行)

  2. 构造方法(构造函数、构造器)

    • 构造方法与类名同名没有返回值

      语法格式:

          public 构造方法名() {
                //初始化代码
          }
      
    • 只能在对象实例化的时候调用

    • 当没有指定构造方法时,系统会自动添加无参的构造方法

    • 当有指定构造方法,无论是有参、无参的构造方法,都不会自动添加无参的构造方法

    • 一个类中可以有多个构造方法

    • 构造方法只能通过 new 关键字来配合使用,或者在构造方法中通过 this关键字 调用同一个类中的其他构造方法,并且这条语句必须放在方法体的第一条。

          /**
           * 宠物猫类
           */
        public class Cat {
              //成员属性:昵称、年龄、体重、品种
              private String name;//昵称
              private int month;//年龄
              private double weight;//体重
              private String species;//品种
              public Cat(){
              System.out.println("我是一个无参的构造方法");
         }
      
          public Cat(String name,int month,double weight,String species) {
                  this();//在构造方法中通过 this关键字 调用同一个类中的其他构造方法,并且这条语句必须放在方法体的第一条。
                  this.name = name;
                  this.month = month;
                  this.weight = weight;
                  this.species = species;
          }
        }
      

this 关键字:

  1. 小结:

    • 面向对象

      • 关注现实存在的事物的各方面的信息,从对象的角度出发,根据事物的特征进行程序设计;

      • 对象:用来描述客观事物的一个实体

      • 类:具有相同属性和方法的一组对象的集合

        • 语法:

          • 类的定义
              public class 类名 {
                    //定义属性部分
                    [访问修饰符]数据类型  属性名;
          
                    //定义方法部分
                    [访问修饰符] 返回类型 方法名(参数){
                    }
              }
          
          • 创建并引用对象
          类名 对象名 = new 构造方法();
          对象名.属性
          对象名.方法名()
          
        • 对象的实例化过程可以分为两部分:

          • 声明对象

          • 实例化对象

            如:Cat cat = new Cat();

            • 声明对象 :Cat cat

              • 声明对象实际上是在内存的栈区开辟了一块空间,此时栈空间的数据是为空的。
            • 实例化对象:new Cat()

              • new 关键字实际上是在内存的堆区开辟了一块空间;
          • 声明对象与实例化对象的关联通过赋值符号“=”号来完成。“=”号是将堆区开辟的空间的内存地址传递到栈区的内存空间里。此后,我们就能通过“对象名.”的形式访问对象的成员属性和成员方法了。

      • 构造方法:构造方法是类中一个比较特殊的方法

        • 没有返回值;与类名相同;可以指定参数;

        • 只能在对象实例化的时候配合 new 关键字调用。

        • 一个类可以有多个构造方法——构造方法重载;

        • 当没有指定构造方法时,系统会自动添加无参的构造方法;

        • 当有指定构造方法,无论是有参、无参的构造方法,都不会自动添加无参的构造方法。

      • this 关键字

        • 当前对象的默认引用

        • 使用场景:

          • 调用成员属性,解决成员属性和局部变量同名冲突。

          • 调用同一个类中的其他成员方法。

          • 调用重载的构造方法,并且该语句必须放在方法体的第一条。

上一篇 下一篇

猜你喜欢

热点阅读