Java 学习-类成员

  • 类变量/静态变量
  1. 基本定义:用static定义的属性(public static int a;);它是同一类的所有对象共享的属性;是在类加载的时候就生成的(所以没有创建对象实例也可以访问,这点听上去不错,会省去一行代码)
  2. 访问方式:类名.类变量名;或对象名.类变量名(推荐前者)
  3. 在内存中的布局:在jdk8以前,类变量存储在方法区的静态域中;jdk8以后位于堆的class对象尾部
  4. 其它:(1)与实例变量/普通变量/非静态变量的区别,它们是对象独享的(2)类变量的访问必须遵守相关的访问权限(3)随着类的消亡而销毁,不是随着对象的消亡而消亡
  • 类方法/静态方法
  1. 如果希望不创建实例,就可以使用某个方法,这个方法可以当作工具来使用,这时可以把方法作为静态方法,比如工具类中的方法utlis,Math类,Arrays类,Collections类
  2. 存储位置:随着类的加载而加载,将结构信息存储在方法区
  3. 不能使用this参数,因为this是与对象有关的
  4. 类方法中可以直接调用类变量,但是需要创建对象才能调用实例变量,示例代码如下(来源于Kimi):
    public class Example {
        private static int staticVar = 10; // 类变量
        private int instanceVar = 20; // 实例变量
    
        public static void staticMethod() {
            // 直接访问类变量
            System.out.println(staticVar);
            
            // 通过实例访问实例变量
            Example example = new Example();
            System.out.println(example.instanceVar);
        }
        
        public void instanceMethod() {
            // 在实例方法中可以直接访问实例变量
            System.out.println(instanceVar);
        }
    }
  5. 静态方法只能访问静态成员,访问非静态成员时需要创建对象;普通方法既可以访问静态成员,也可以访问非静态成员(必须遵守访问权限)。
  • main方法
  1.  main方法是java虚拟机调用,所以该方法的访问权限必须是public
  2.  main方法执行时不必创建对象,所以该方法必须为static
  3.  该方法接收String类型的形参args
  4.  可以直接调用main方法所在类的静态成员,但是必须先创建对象才能调用本类的非静态成员。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值