上次咋讲述的那个“类和对象在内存中的表现形式”。笔者后来回家进行校对后发现遗漏一个例子。赶忙写篇手记把补上。。
在该例子中,我们创建2个类:Employee 和 EmployeeMessage
Employee.java文件代码:
import java.io.*;
public class Employee{ //定义Employee类。(雇员)
String name; //定义name属性.
int age; //定义age属性.
String designation; //定义designation属性.(职称)
double salary; //定义salary属性.(工资)
public void printEmployee(){ //输出雇员信息
System.out.println("名字:"+name);
System.out.println("年龄:"+age);
System.out.println("职位:"+designation);
System.out.println("薪水:"+salary);
System.out.println();
}
}
因为程序都是从main方法开始执行的。为了能运行这个程序,我们必须创建main方法并且实例化对象。
我们来创建EmployeeMessage.java文件代码:
import java.io.*;
public class EmployeeMessage{
public static void main(String args[]){
Employee empOne = null; //声明对象(赋初值)
Employee empTwo = null; //声明对象(赋初值)
empOne = new Employee(); //实例化对象(指向堆内存空间)
empTwo = new Employee(); //实例化对象(指向堆内存空间)
empOne.name="张三"; //改变empOne所指向的堆内存空间中name值
empOne.age=28; //改变age的值。
empOne.designation="高级程序员";//改变designation值(职称)
empOne.salary=1000;//改变salary值(薪水)
empOne.printEmployee();
empTwo.name="李四";//改变empTwo所指向的堆内存空间中name值.
empTwo.age=20;
empTwo.designation="初级程序员";
empTwo.salary=500;
empTwo.printlnEmployee();
}
}
代码运行结果:
这里我先看下Employee类的这个的类图。
这里第1层是类名:Employee
第2层是Employee类中的属性。(name,age,designation,salary.分别都是公共的。) 其中name和designation都是String型,age为int型,salary为double型。
第3层是Employee类中的方法。(方法为公共的,且为void型。)
在内存中的表现形式为:
栈内存中empOne,empTwo属性分别指向对应的堆内存空间,并设置该堆内存空间中的属性值。
注意啊,各位读者们。我这里是以文件为单位的。我把Employee写在一个java文件了。在通过EmployeeMessage.java文件调用Employee。
区别与我们之前的把几个类写在一个文件夹中。这个就是封装性,这个因为篇幅有限。只能管中窥豹一二。以后咱们单独开一个篇幅来写一写这个封装性。
热门评论
加油