Java学习笔记——实例变量,类变量的区别和应用,本文案例:获得一个梯形的上底下底和高

package te11128;

//本节知识点:实例变量,类变量

class Lader{
    double trapezoidalTop,trapezoidalHeight;    //实例变量
    static double trapezoidalBottom;  //类变量
    void setTop (double a) {
        trapezoidalTop =a;
    }
    void setBottom (double b) {
        trapezoidalBottom = b;
    }
    double getTop() {
        return trapezoidalTop;
    }
    double getBottom() {
        return trapezoidalBottom;
    }
}

public class Page78 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
//该程序从主类main方法开始执行,执行到Lader.trapezoidalBottom=100;java虚拟机首先将Lader
//的字节码加载到内存,同时为类变量"trapezoidalBottom"分配了内存坤见,并赋值100.
        
        Lader.trapezoidalBottom=100;  //Lader的字节码被加载到内存,通过类名操作类变量
        
//当执行Lader laderOne = new Lader();Lader laderTwo = new Lader();时,实例变量
//trapezoidalTop和trapezoidalHeight都两次分配内存空间,分别被对象laderOne和laderTwo
//引用,而类变量"trapezoidalBottom"不在分配内存,直接被对象laderOne和laderTwo引用、共享
        
        Lader laderOne = new Lader();
        Lader laderTwo = new Lader();
        laderOne.setTop(28);
        laderTwo.setTop(66);
        System.out.println("laderOne的上底:"+laderOne.getTop());
        System.out.println("laderOne的下底:"+laderOne.getBottom());
        System.out.println("laderTwo的上底:"+laderTwo.getTop());
        System.out.println("laderTwo的下底:"+laderTwo.getBottom());
    }
}


//类似乎破坏了封装性,实际上不是,当对象调用实例方法时,改革方法中出现的类变量也是该对象的变量,
//只不过这个变量和所有的其他对象共享而已。
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值