Java知识点--类变量

1.介绍类变量

类变量也叫静态变量,是该类所有对象共享的变量,任何一个本类对象去访问它时,取得的都是相同的数值,如果本类的对象去修改类变量,那么在这之后任何一个本类对象去访问它时,取得的都是修改之后的数值。

2.类变量的定义语法

访问修饰符+static+数据类型+变量名

3.如何访问类变量

可以使用类名+变量名
或者 对象名+变量名

下面展示如何访问类变量

public class Static {
    public static void main(String[] args) {
        Child tom = new Child("tom");
        System.out.println(tom.count);//对象名+变量名
        System.out.println(Child.count);//类名+变量名  
    }
}
class Child {
    private String name;
    public static int count = 0;

    public Child(String name) {
        this.name = name;
    }
}

4.类变量的注意事项

1.类变量与普通变量的区别:
类变量是该类所有对象共享的,普通变量是每个对象独享的。
2.普通变量加上static修饰符就变成类变量。
3.类变量可以使用类名+变量名 或者 对象名+变量名进行访问,都是普通变量只能通过对象名+变量名进行访问。
4.类变量在类加载的时候就已经初始化了,不需要创建对象即可访问,所以可以使用类名+变量名进行访问,都是普通变量不行。

5.类什么时候被加载

1、创建对象实例时。
2、使用类的静态成员时(类变量,类方法)。
3、如果有继承关系,创建子类对象实例时,其父类也会加载。

6.一个案例说明类变量与普通变量的区别

public class Static {
    public static void main(String[] args) {
        Child tom = new Child("tom");
        tom.count++;
        tom.count1++;
        Child jack = new Child("jack");
        jack.count++;
        jack.count1++;
        Child sam = new Child("sam");
        sam.count++;
        sam.count1++;
        System.out.println(tom.count);
        System.out.println(tom.count1);
        System.out.println(jack.count);
        System.out.println(jack.count1);
        System.out.println(sam.count);
        System.out.println(sam.count1);
    }
}

class Child {
    private String name;
    public static int count = 0;
    public int count1 = 0;

    public Child(String name) {
        this.name = name;
    }
}

在Child类中创建了类变量count和普通变量count1。
类变量是该类所有对象共享的,所以tom.count,jack.count,sam.count这三个类变量会同步变化,我们发现程序中有三个count++,所以tom.count,jack.count,sam.count这三个类变量结果都为3。
普通变量是每个对象独享的,所以tom.count1,jack.count1,sam.count1这三个变量没有关联。我们发现程序中每个对象有一个count1++,所以tom.count,jack.count,sam.count这三个类变量结果都为1。

运行结果

3
1
3
1
3
1
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
java核心知识点整理 1.Java中没有多继承,而是用接口来代替多继承 2.运行一个已经编译的程序时,Java解释器总是从指定的main方法中的代码开始执行,因此,执行代码中必须有一个main函数。 3.Java是典型的强语言,即必须声明变量型,Java中有8种型,6种数值型(4个整数型和2个浮点型)、一个字符型和一个boolean型。 想学习java可以来这个群,首先是二二零,中间是一四二,最后是九零六,里面有大量的学习资料可以下载。 4.强制型转换: int nx = (int) x; // (语法:用圆括号将目标型括起来,后面跟上要转换的变量); 5.Java不能为单独的方法,如main方法,定义局部常量,而只能为定义常量,供该的所有方法使用,所以,通常称之为常量。如: class UsersConstants{ 2public static final double g = 32; public static final double main(String[] args){ System.out.println(g); } } 注意:常量定义于main方法的外边,而且必须有关键字 static final; 6.字符串的子串: String str = hello”“; String str1 = str.substring(0,4); //输出hell 7.不要用==运算符来测试两个字符串是否相等,该运算符只能判断两个字符串是否存在同一个位置。 用equals. String str = “hello”; str.equals(”hell”); // return false; 8.对象的行为、状态、标识 9.面向过程与OOP
Java中,与继承-抽象有以下几个关键点。首先,继承是指一个可以继承自另一个。被继承的被称为父/超/基,而继承其他被称为子。继承使得子可以拥有父中所有的成员(成员变量和成员方法),从而提高了代码的复用性。 其次,当子继承自一个抽象时,子必须重写父所有的抽象方法,否则该子也必须声明为抽象。最终,必须有子实现该父的抽象方法,否则从最初的父到最终的子都不能创建对象,失去了继承的意义。 一个示例代码如下: ``` public abstract class Animal { public abstract void run(); } public class Cat extends Animal { public void run() { System.out.println("小猫在墙头走~~~"); } } public class CatTest { public static void main(String[] args) { Cat c = new Cat(); c.run(); } } ``` 在上述代码中,Animal是一个抽象,其中定义了一个抽象方法run。Cat继承自Animal,并且重写了run方法。在CatTest的main方法中,创建了一个Cat对象并调用了run方法。 更多关于Java与继承-抽象的知识,可以参考Java基础教程之接口的继承与抽象。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [java面向对象基础——继承、抽象](https://blog.csdn.net/qq_42538127/article/details/115426682)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [【JavaSe】面向对象篇(六) 抽象](https://blog.csdn.net/qq_41744145/article/details/100023046)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Java基础教程之接口的继承与抽象](https://download.csdn.net/download/weixin_38516270/12808613)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

邱崇源

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

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

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

打赏作者

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

抵扣说明:

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

余额充值