ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

面向对象编程----程序执行过程的内存分析_02

2022-05-18 19:35:14  阅读:198  来源: 互联网

标签:02 面向对象编程 s1 程序执行 Computer Student println public name


内存分析:

 

新建一个类文件Student

package cn.Test.oop;

/**

 * 以类的方式组织代码,以对象的方式封装(组织)数据!

操作对象就是操作它的地址!

对象以类为模板来的!

所有的引用类型都是4个字节!

 * @author 神奇的梦

 *

 */

public class Student {

//属性:静态的数据 private 私有

// 成员变量你不初始化,系统会帮你初始化一下

 String name;

 int id; //学号

 int age;//年龄

 String gender;//性别

 int weight;//体重

//  加一个属性

 Computer computer;

//动态的行为  

 public void study() {

 System.out.println(name+"在学习");

 }  

 public void sayHello(String sname) {

 System.out.println(name+"向"+sname+"说:你好!");

 }

}  

 新建一个类文件Computer

 package cn.Test.oop;

 public class Computer {

String brandq;//品牌

int cpuSpeedq;//cpu熟读

}

 新建一个类文件Test1

package cn.Test.oop;

public class Test1 {

public static void main(String[] args) {

//通过类加载器class loader加载Student类,加载后,在方法区中就有了Student类的信息!

Student s1=new Student();

s1.name ="杯子";

s1.sayHello("白色杯子");

 

Student s2=new Student();

s2.age=10;

s2.name="华为手机"; 

}

}

  新建一个类文件Test2 

package cn.Test.oop;

// test2是最先被加载的

public class Test2 {

public static void main(String[] arge) {

// 这里必须加载test1,test2 

Student s1=new Student();

s1.name ="ss";

s1.age=19;

System.out.println(s1.name);

// Computer加载computer类

// 需要加载Computer类

// Computer类的信息

// 1.代码

// 2.static

// 3.常量池

// new一个模板在方法区里

// 把建出来的模板的地址,给了变量c(地址)

Computer c = new Computer();

// 然后把方法区里面的常量池"联想",给了brandp地址然后指向变量c

c.brandq = "联想";

//      如果是对象的话除了八种数据类型之外的话都是null

//      如果是数字默认是0小数是0.0

//      boolean默认是false

//      char: 反斜杠u0000  表示一个unknown也是0

 // cpuSpeedq(这里可以直接赋值)地址然后指向变量c

c.cpuSpeedq = 100;

System.out.println(c.brandq);

// 我想把这台电脑给没有一个人

// 通过s1.computer.brand可以找到品牌

// 把c的值(引用地址)给了s1.compute

// 这样就可以通过s1.compute找到c指向的堆了的堆了

s1.computer=c;

System.out.println(s1.computer.brandq);

c.brandq="戴尔";

 System.out.println(s1.computer.brandq);

 }

}

标签:02,面向对象编程,s1,程序执行,Computer,Student,println,public,name
来源: https://www.cnblogs.com/fantasticDream/p/16285967.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有