JXNU1999python 发表于 2021-11-29 21:07

Java自学笔记Day13

Java学习笔记Day13

一、今日学习:

面向对象第二节

二、学习目标

1、局部变量与成员变量

2、堆内存的作用

3、创建一个对象

4、如何访问对象的内部

5、访问对象时的内存状态

6、多个对象复杂访问?

三、学习内容

1、局部变量与成员变量

局部变量处于方法体内部声明,成员变量在方法体外部声明。
实例变量前面修饰符没有static,静态变量则有。

2、堆内存的作用

在创建对象的时候,对象就存储在堆内存里面,堆内存可以存储很多对象。

3、创建一个对象

如何在主方法中创建一个对象,使用对象的名字,就是class文件的文件名。
将一个class文件当作一个对象,class文件的类名就是对象的名字。
语法:类名+变量名=new 类名

    public class ComputerTest {
                public static void main(String[] args) {
                        Computer biJiBen=new Computer();
               
                }
      class Computer{
                String brand;
                String style;
                String color;
      }

4、访问对象内部

只需要在新定义的变量后面加个点,再加上对象里面的任意一个变量,就能访问这个对象里面的变量。如果需要给对象内部变量赋值,需要使用等于号。在没有赋值之前,对象内部的变量为默认值,是0或者null。

    public class ComputerTest {
                public static void main(String[] args) {
                        Computer biJiBen=new Computer();
                        biJiBen.brand = "华硕";
               
                }
      class Computer{
                String brand;
                String style;
                String color;
      }

5、访问对象时的内存状态

在执行这个对象的时候,将堆内存中的对象的地址赋值给定义的biJiBen变量,根据这个地址,就能访问到对象内部。新定义的变量存储了对象在堆内存中的地址。
使用语句biJiBen=null;就会把存储的地址清除,之后就无法访问对象内部了。

6、多个对象的访问,根据代码来理解吧。

这个运用我也不清楚是什么行为。
变量互换?

      public class ComputerTest {
                public static void main(String[] args) {
                        Computer biJiBen=new Computer();
                        biJiBen.brand="小米";
                        biJiBen.style="RedMI14";
                        biJiBen.color="black";
                        System.out.println(biJiBen.color);
                        System.out.println(biJiBen.style);
                        Student ming=new Student();
                        ming.no=2688;
                        ming.name="小明";
                        ming.notepad="笔记本";
                        biJiBen.suoyouzhe=ming;
                        System.out.println(biJiBen.suoyouzhe.name);//笔记本所有者的名字
                        System.out.println(ming.name);//学生小明的名字
                }
      }
      class Computer{
                String brand;//引用数据类型 字符串
                String style;
                String color;
                Student suoyouzhe;//引用数据类型 所有者
      }
      class Student{
                int no;
                String name;
                String notepad;
      }
四、未解决问题

1、来自学习内容6的?未知理解

.代表的,ming.name表示小明的名字。为什么biJiBen.suoyouzhe=ming;

2、System.out.println(biJiBen.suoyouzhe.name);这个语句为什么可以这样写?

rocky12 发表于 2021-11-29 21:30

java现在挺香的

1621797018 发表于 2021-11-29 21:34

感谢大佬

yunjianchenxi8 发表于 2021-11-29 21:37

凡事预则立不预则废,希望坚持下去,坚持就是胜利!

咔c君 发表于 2021-11-29 21:37

学习了不错

fergus1987 发表于 2021-11-29 21:42

正愁找不到教程 up主太棒了

xiaoshanji 发表于 2021-11-29 21:52

学习学习,从入门到入坟哈哈

lff283 发表于 2021-11-29 23:25

加油! 加油加油.相信自己. 目前 java挺吃香的

Mrzhang1991 发表于 2021-11-30 00:20

我已经到框架了这个过程很艰辛 希望坚持

HOOK1 发表于 2021-11-30 00:32

目测是,把ming这个对象赋值给 biJiBen.suoyouzhe
System.out.println(biJiBen.suoyouzhe.name);
这个意思是打印(笔记本的所有者的名字),打印出来是小明,
因为biJiBen.suoyouzhe=ming,   Student ming 是个对象,赋值给了biJiBen.suoyouzhe
页: [1] 2
查看完整版本: Java自学笔记Day13