Java -- 实例成员和类成员

目录

1、实例变量和类变量的声明

2、实例变量和类变量的区别

举例说明:

代码实例:

3、实例方法和类方法的定义

4、实例方法和类方法的区别


1、实例变量和类变量的声明

在声明成员变量时,用关键字static给予修饰的称作类变量,否则称作实例变量(类变量也称为static变量,静态变量)。

2、实例变量和类变量的区别

  • 不同对象的实例变量互不相同

  • 所有对象共享类变量

  • 通过类名直接访问类变量

举例说明:

两个房间(实例)。

房间里各有一个电视(实例变量),虽然这两个电视的品牌和型号等都相同(一模一样的电视),但此刻播放的频道不一定相同。

房间里通有同一条水管(类变量),无论水管里通热水还是冷水,两个房间里接收到的水都一样。

 

代码实例:

两个梯形(实例),上底和高(实例变量),下底(类变量)。

 

代码实现:

public class Ladder{
    double 上底,高;      //实例变量
    static double 下底;  //类变量
    void 设置上底(double a) {
        上底 = a;
    }
    void 设置下底(double b) {
        下底 = b;
    }
    double 获取上底() {
        return 上底;
    }
    double 获取下底() {
        return 下底;
    }
}
​
​
public class LadderTest{
    public static void main(String[] args){
        Ladder.下底 = 100;     //Lader的字节码被加载到内存,通过类名操作类变量
        Ladder ladderOne = new Ladder();
        Ladder ladderTwo = new Ladder();
        ladderOne.设置上底(28);
        ladderTwo.设置上底(66);
        System.out.println("ladderOne的上底:"+ladderOne.获取上底());
        System.out.println("ladderOne的下底:"+ladderOne.获取下底());
        System.out.println("ladderTwo的上底:"+ladderTwo.获取上底());
        System.out.println("ladderWwo的下底:"+ladderTwo.获取下底());
    }
}

3、实例方法和类方法的定义

类中的方法也可分为实例方法和类方法。方法声明时,方法类型前面不加关键字static修饰的是实例方法、加static关键字修饰的是类方法(静态方法)。

4、实例方法和类方法的区别

1)对象调用实例方法

当对象调用实例方法时,该方法中出现的实例变量就是分配给该对象的实例变量;该方法中出现的类变量也是分配给该对象的变量,只不过这个变量和所有的其他对象共享而已。实例方法中不仅可以操作实例变量,也可以操作类变量,实例方法可以调用类里的实例方法和类方法(不包括构造方法)

2)类名调用类方法

从而类方法不仅可以被类创建的任何对象调用执行,也可以直接通过类名调用。和实例方法不同的是,类方法不可以操作实例变量,这是因为在类创建对象之前,实例成员变量还没有分配内存。类方法不可以调用类里的实例方法,只可以调用类里的类方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我和程序有一个能跑就行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值