1.设计对象并使用

类(设计图):是对象共同特征的描述

对象:是真实存在的具体实例

结论:在 Java 中,必须先设计类,才能创建对象并使用

【例子】:

public class Car{
    //属性(成员变量)
    String name;
    double price;
    //行为(方法)
    public void start(){

    }
    public void run(){

    }
}

如何获取对象:

【类名 对象名 = new 类名()】

如何使用对象:

【对象名.成员变量】【对象名.方法】

【注意事项】:

  • 类名首字母建议大写,且有意义,满足 “驼峰模式”。
  • 一个Java文件中可以定义多个class类,但只能一个类是public修饰,而且public修饰的类名必须是文件名(实际中开发建议一个文件定义一个类)
  • 成员变量的完整定义格式是:修饰符 数据类型 变量名称 = 初始化值;
  • 成员变量的默认值规则

2.对象在内存中的运行机制

  • 多个对象的内存图

  • 两个变量指向同一个对象的内存图

【垃圾回收】:

当堆内存中的对象,没有被任何变量引用时,就会判定为内存中的“垃圾”

3.构造器

【目的】:

  1. 真正知道对象具体是通过调用什么代码得到的
  2. 能够掌握为对象赋值的其他简便写法
  3. 为以后学习面向对象编程的其他内容做支撑

【构造器的作用】:

  • 定义在类中的,可以用于初始化一个类的对象,并返回对象的地址。
  • 无参构造器默认存在的:初始化对象时,成员变量的数据均采用默认值。
  • 有参构造器:在初始化对象的时候,同时可以接受参数为对象进行赋值。

【构造器的格式】:

public class Car{
    //无参构造器
    public Car(){

    }
    //有参构造器
    public Car(String name,double price){
        ....
    }
}

【调用构造器得到对象的格式】

Car car = new Car();//意为调用了无参构造器
Car car = new Car("奔驰",200.0)//调用了有参构造器

【构造器的注意事项】

  • 任何类定义出来,默认就自带了无参构造器。写不写都有
  • 一旦定义了有参构造器,那么无参构造器就没有了,如果想用需要编写出来

4.this关键字

4.1、this关键字是什么

  • 可以出现在构造器、方法中
  • 代表当前对象的地址
public class Car {
    public Car() {
        System.out.println("this在构造器中:" + this);
    }
    public void run() {
        System.out.println("this在方法中:" + this);
    }
}
public class Test2{
    public static void main(String[] args) {
        Car c = new Car();
        c.run();
        System.out.println(c);
    }
}

4.2、关键字的作用

  • 可以用在指定访问当前对象的成员变量、成员方法

【错误】:

public class Car{
    String name;
       double price;
    public Car(String name,double price){
        name = name;
        price = price;
    }
}

【正确】:

public class Car{
    String name;
    double price;
    public Car(String name,double price){
        this.name = name;
        this.price = price;
    }
}

5.封装

5.1、封装思想概述

【封装】:

  • 面向对象的三大特种:封装、继承、多态
  • 告诉我们,如何正确设计对象的属性和方法
  • 原则:对象代表什么,就得封装对应的数据,并提供数据对应的行为

【好处】:

  • 有什么事,找对象,调用方法就行,编程变得简单
  • 降低学习成本,可以减少不必要的点

5.2、如何更好的封装

  • 一般建议对成员变量使用 private(私有)关键字修饰
  • 为每个成员提供配套的 public 修饰的 getter、setter 方法暴漏其取值和赋值
public class Student {
   private int age;
   public int getAge() {
       return age;
   }
    public void setAge(int age) {
        if (age >= 0 && age <= 200) {
            this.age = age;
        } else {
            System.out.println("请检查年龄数值!!");        }
}

6.标准 JavaBean

  • 称为实体类,其对象可以用于程序中封装数据

【书写要求】:

  • 成员变量使用 private 修饰。
  • 提供成员变量对应的 set()/get() 方法
  • 必须提供一个无参构造器;有参构造器可写可不写

7.成员变量和局部变量的区别

results matching ""

    No results matching ""