继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

java学习笔记系列【二】补充(类和对象知识的补充。)

qq_感受时光的匆匆流失_0
关注TA
已关注
手记 7
粉丝 19
获赞 154

上次咋讲述的那个“类和对象在内存中的表现形式”。笔者后来回家进行校对后发现遗漏一个例子。赶忙写篇手记把补上。。
在该例子中,我们创建2个类:EmployeeEmployeeMessage
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。
区别与我们之前的把几个类写在一个文件夹中。这个就是封装性,这个因为篇幅有限。只能管中窥豹一二。以后咱们单独开一个篇幅来写一写这个封装性。

打开App,阅读手记
6人推荐
发表评论
随时随地看视频慕课网APP

热门评论

加油

查看全部评论