一、设计对象并使用

二、封装

对象代表什么,就得封装对应的数据,并提供数据对应的行为。

1.private关键字:priviate修饰的成员变量只能在本类中访问。

2.this关键字:能够直接对应成员变量(当局部变量名相同时)。

3. 构造方法概述

创造对象的时候,虚拟机会自动调用构造方法,作用是给成员变量进行初始化的。

构造方法也叫作构造器、构造函数。

作用:在创建对象的时候给成员变量进行初始化(赋值)的。

格式:

java 两个对象赋值不同内存地址 java两个对象相互引用_java 两个对象赋值不同内存地址

特点:
1.方法名与类名相同,大小写也要一致2.没有返回值类型,连void都没有
3.没有具体的返回值(不能由retrun带回结果数据)

举例:

java 两个对象赋值不同内存地址 java两个对象相互引用_java 两个对象赋值不同内存地址_02

执行时机:
1.创建对象的时候由虚拟机调用,不能手动调用构造方法2.每创建一次对象,就会调用一次构造方法

创建类

package test;

public class Student {
    String name;
    int age;

    // 空参构造
    public Student(){

    }
    // 带参构造
    public Student(String name, int age){
        this.age = age;
        this.name = name;
    }
    public void setAge(int age){
        this.age = age;
    }
    public int getAge(){
        return this.age;
    }
}

生成对象

package test;

public class Student_test {
    public static void main(String[] args) {
        Student student = new Student();// 空参初始化
        Student student1 = new Student("小蓝", 18);// 带参初始化
        System.out.println(student.getAge());// 0
        System.out.println(student1.getAge());// 18
    }
}

 一般在创建类时,空参构造和带参构造都要写上。

构造方法注意事项

如果没有定义构造方法,系统将给出一个默认的无参数构造方法。

如果定义了构造方法,系统将不再提供默认的构造方法。

构造方法的重载

带参构造方法,和无参数构造方法,两者方法名相同,但是参数不同,这叫做构造方法的重载

推荐的使用方式

无论是否使用,都手动书写无参数构造方法,和带全部参数的构造方法

4.标准的JavaBean类

(1)类名需要见名知意

(2)成员变量使用private修饰

(3)提供至少两个构造方法:无参构造方法、带全部参数的构造方法。

(4)成员方法:提供每一个成员变量对应的setXxx()/getXxx()如果还有其他行为,也需要写上

//快捷键:
// alt + insert
// alt + Fn + insert
//插件PTG 1秒生成标准Javabean

5.对象内存图 

(1)一个对象的内存图

java 两个对象赋值不同内存地址 java两个对象相互引用_java_03

java 两个对象赋值不同内存地址 java两个对象相互引用_jvm_04

(2)多个对象的内存图

(3)两个变量指向同一个对象内存

java 两个对象赋值不同内存地址 java两个对象相互引用_jvm_05

(4)基本数据类型和引用数据类型的区别

java 两个对象赋值不同内存地址 java两个对象相互引用_开发语言_06

(5)this的内存原理

java 两个对象赋值不同内存地址 java两个对象相互引用_开发语言_07

java 两个对象赋值不同内存地址 java两个对象相互引用_开发语言_08

(6)局部变量和成员变量的区别

java 两个对象赋值不同内存地址 java两个对象相互引用_jvm_09