Java基础00-面向对象基础13

1. 类和对象

1.1 什么是对象

1.2 什么是面向对象

   

 

 

           

 

1.3 什么是类

1.4 什么是对象的属性

 

1.5 什么是对象的行为

行为就是对象能够干什么

1.6 类和对象的关系

1.7 类的定义

1.7.1 类的定义步骤

            

代码示例:

                  

1.8 对象的使用

代码示例:

 

 

 

 1.8.1 案例

 

public class Student {
    String name;
    int age;
    public void study(){
        System.out.println("好好学习");
    }
    public void doHomework(){
        System.out.println("多多练习");
    }
}

public class StudentTest {
    public static void main(String[] args) {
        //创建第一个对象并使用
        Student s1 = new Student();
        System.out.println(s1.name);//null
        System.out.println(s1.age);//0

        s1.name="林青霞";
        s1.age=10;
        System.out.println(s1.name);//林青霞
        System.out.println(s1.age);//10

        s1.study();//好好学习
        s1.doHomework();//多多练习
    }
}

2. 对象内存图

2.1 对象内存图(单个对象)

栈内存:存放静态变量、方法、常量、局部变量

堆内存:存放new出来的对象、数组、成员变量

这是一个测试类

先从main方法开始,main方法被加载到栈内存

创建对象,它会被加载到栈内存中

new Student(),在堆内存中new一片空间放入成员遍历,并赋值默认值。
方法没有调用,所以不会加载。

s指向堆内存中new出来的地址,这样就可以使用堆内存中的数据了。

输出s,因为s指向001,所以输出001.

s指向001,name指向001中的name,所以输出null

s指向001,age指向001中的age,所以输出0

最后拼接输出,null,0

s.name = “张曼玉”; 通过s(001)找到name,给他赋值"张曼玉"

和上面一样age的值修改为28

再次输出的时候就成了,张曼玉,28

s.study(); 首先找都Studen对象中的study方法,将它加载到栈内存中,而s(001)就是它的调用者。

接下来进入study方法中,输出"好好学习"

当这个方法执行完毕就会从栈内存中消失。

接下来的doHoework();方法和study()方法一样。

2.2 对象内存图(多个对象)

因为new 是在堆内存中开辟一块空间,所以,s1和s2是不一样的,互不影响。

2.3 对象内存图(多个对象指向相同)

 

 

 

把s1(001)赋值给s2,这样s1和s2就都指向了堆内存中的001

把第一个对象的地址赋值给第二个对象

因为s2指向的堆内存地址也是001,所以把name修改为"张曼玉"

同上age的值变为28

因为s1和s2的堆内存地址值是一样的,所以他们俩输出的结果是一样的。

s1输出的是张曼玉,28

s2输出的也是张曼玉,28

3. 成员变量和局部变量

3.1 什么是成员变量和局部变量

3.2 成员变量和局部变量的区别

4. 封装

4.1 private关键字

4.2 private关键字的使用

 

 

 

 

4.3 this关键字

this修饰的变量是成员变量;this代表所在类的对象引用,方法被哪个对象调用,this就代表哪个对象

 

 

4.4 this内存原理

s1调取setName方法,setName()进入栈内存

形参name是传递过去的"林青霞"

调用者是s1(001)

setName()方法中的this就是s1(001)

this就是调用者s1(001),name是001地址中的name,name是参数"林青霞"赋给001中的name

s2在堆内存空间中再开辟一块空间,和s1互不干扰。

总结:调用者是谁this就代表了谁

4.5 封装

5. 构造方法

5.1 构造方法概述

5.2 构造方法的注意事项

5.3 标准类制作

原文地址:https://www.cnblogs.com/ajing2018/p/14642179.html