package com.atguigu.java;
/*
* static关键字的使用
* 1.static 静态的
* 2.static可以用来修饰 属性,方法,代码块,内部类
* 3.使用static 修饰属性,静态变量
* 属性,按是否使用static修饰,又分为;静态属性vs 非静态属性(实例变量)
* 实例变量 : 我们创建了类的多个对象,每个对象都独立拥有一套类中的非静态属性当修改其中一个对象中的非静态属性时,不会导致其他对象中同样的属性值的更改
* 静态变量; 我们创建了类的多个对象,多个对象共享同一个静态变量当通过莫一个对象修改静态变量时,会导致其他对象调用静态变量时,是修改过了的
* 3.2static 修饰属性的其他说明
* a 静态变量随着类的加载而加载,可以通过”类.静态变量“的方式进行调用
* b 对象变量的加载早于对象的创建
* c由于类的加载只会加载一次,则静态变量在内存中只存在一份,存在方法去的静态域中。
* d 类 实例变量
* 类 yes no
* 对象 yes yes
*
* 3.3静态属性的举例 System.out; Math.PI;
* 4.使用static修饰方法
* 1.随着类的加载而加载,可以通过类的"类.静态方法”的方式进行调用
* 2. 静态方法 非静态方法
* 类 yes no
* 对象 yes yes
* 3.静态方法中只能调用静态的方法和属性,非静态方法中既可以调用静态也可以非静态的
*
* 5.static注意点
* 5.1在静态的方法中,不能使用this关键字,super关键字
* 5.2关于静态属性和静态方法的使用,大家从生命周期的角度去理解
*
* 6.开发中,如何确定一个属性是否声明为static
* 属性可以被多个对象所共享的不会随着对象的不同而不同的
*
* 开发中,如何确定一个熟悉感是否声明为static
*
* 操作静态属性的方法通常设置为静态的
* 工具类中的方法,习惯上声明为静态的,比如Math Arrays, Collections
*
*
*/
public class StaticTest {
public static void main(String[] args) {
Chinese.nation = "中国";
Chinese.show();
Chinese c1 = new Chinese();
c1.name = "姚明";
c1.age = 40;
Chinese c2 = new Chinese();
c2.name = "马龙";
c2.age = 30;
c1.nation = "CHN";
System.out.println(c2.nation);
}
}
class Chinese{
String name;
int age;
static String nation;
public void eat() {
System.out.println("中国人吃中国餐");
}
public static void show() {
System.out.println("我是一个中国人!");
System.out.println(Chinese.nation);
walk();
}
public static void walk() {
}
}
static
最新推荐文章于 2024-06-11 13:58:16 发布