吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1485|回复: 12
收起左侧

[学习记录] Java自学笔记Day13

[复制链接]
JXNU1999python 发表于 2021-11-29 21:07
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);这个语句为什么可以这样写?

内存图

内存图

代码?为什么这么写

代码?为什么这么写

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
GuanQingGang + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

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
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 18:18

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表