关于java中类变量与类方法(学习笔记)

1.类变量

1.1类变量的定义

类变量也叫静态方法,对于该类的所有对象共享一个变量,所有该对像访问它时获得的都是相同的值。类变量在类加载但还未创建时就已经形成,因此有了杯该类所有对象共享的特性。

1.2普通变量(实例变量)与类变量的区别

1.不同对象的普通变量不同
2.所有对象共享类变量
3.可以直接通过类名直接诶访问类变量,普通变量必须通过对象访问

2.类方法

2.1类方法的定义

声明方法时,在方法类型前面加上关键字static,方法就具有了通过类名直接访问的特性,也是在加载类时就被加载的,不需要调用的对像是具体的对象。

2.2普通的方法(实例方法)和类方法区别

1.对象调用实例方法
类的字节码文件被加载到内存时,类的实例方法不会分配内存入口地址,只有当类创建对象后,类中的实例方法才会分配入口地址,从而实例方法可以被类创建的任何对象调用、执行。需要注意的是,当创建第一个对象时,类中的实例方法就分配了入口地址,当在创建对象时,不在为实例方法分配地址入口。也就是说,方法的入口地址所有的对象对象共享,当所有的对象都不存在时,方法入口才被取消。

在实例方法中不仅可以操作实例变量,也可以操作类变量,实例方法可以调用类中的实例方法和类方法(不包括构造器)。

2.类名调用类方法

对于类方法,在该类被加载到内存是就分配了相应的入口地址,从而类方法不仅可以被类创建的任何对象调用、执行。从而达到被类对象和类名调用的功能。类方法的入口地址只有在程序退出时才会被取消。 实例方法不可以通过类名调用,只有类方法可以。

实例:

package com.gmu.test01;

public class demo01 {
    public static void main(String[] args) {
        //调用静态属性和方法
        System.out.println("静态属性: A.num2 = " + A.num2);
        A.m2();  //静态方法
        //调用普通属性
        A a = new A();
        System.out.println("普通属性: a.num1 = " + a.num1);
        System.out.println("普通属性: a.num2 = " + a.num2);  //实例对象也可以访问静态属性
        a.m1();  //调用普通方法
        a.m2();  //对象调用静态方法
    }
}

class  A{
    int num1;   //普通属性
    static int num2;  //静态属性
    public void m1(){
        System.out.println("普通的方法m1()");
    }
    public static void m2(){
        System.out.println("静态方法m2()");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

@小虎同学

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

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

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

打赏作者

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

抵扣说明:

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

余额充值