Java05-6 修饰符

文章详细介绍了Java中的static和final修饰符。static用于修饰成员变量和方法,使其成为类变量和类方法,可通过类名直接访问。静态方法不能使用this和super,不能直接访问非静态成员。final则可以修饰变量、方法和类,表示常量、不可重写的方法和不可继承的类。
摘要由CSDN通过智能技术生成

一、static修饰符
static:静态,可以修饰成员变量和成员方法(不能修饰局部变量和构造方法)
被static修饰的变量和方法,称之为静态变量和静态方法   (静态方法和静态变量直接通过类来调用,不用再通过对象)

静态变量和静态方法是属于类的    (类变量和类方法)
成员变量和成员方法是属于对象的  (对象变量和对象方法)

一般情况下,调用静态变量的方式为:类名.变量名,静态变量是类以及该类的成员(也称实例/对象)所共享的
调用静态方法的方式为:类名.方法名([实参列表])
静态方法不能被重写,可以被重载

在静态方法中不能使用this和super;
在静态方法中也不能直接使用成员变量和成员方法 (需先new个对象,再通过对象使用);
不能使用的原因就是调用静态方法时,不能保证肯定有该类的对象,有可能是通过类直接调用的。

类中可以定义成员变量、成员方法、静态变量、静态方法、构造方法 (目前变量有静态变量、局部变量、全局变量)

class Test{    
    public int a;             //成员变量    
    public static int b;   //静态变量(参数名 斜体)    
    
    public void aa() {
        System.out.println("成员方法");
    }
    public static void bb() {
        //this.a = 10;   //报错,this/super调用本类/父类的对象,静态方法执行不能确定是类还是对象调用的)
        System.out.println("静态方法");  //System.out.println("静态方法" + this.a);  同上述原因报错
        //println("静态方法")为out的方法,out为System类的变量
    }
}
public class MyStatic {
    public static void main(String[] args) {
                           System.out.println(Test.b);    //调用静态变量 b默认为0
        Test.b = 100;     //改变类变量,test.b对象名调用也为100
        //Test.a = 10;  (报错,通过类名只能调用静态变量,不能调用非静态变量,a为成员变量)
        Test.bb();    //调用静态方法的时候不需先有对象
        
        Test test = new Test();
        System.out.println(test.b);   //(通过对象调用静态变量不适合,但不影响功能)
        test.bb();  //(此处用对象调用静态方法,故标黄线提醒)        
        
        test.b = 1000;
        Test test2 = new Test();
        System.out.println(test2.b); //1000     在调用之前,共享的test.b已经改为1000,用修改后的值        
    }
}


二、final修饰符
final:
1.可以修饰变量,称之为常量;值一旦确定就不可更改
2.可以修饰方法,称之为最终方法;该方法不能被重写  (成员方法、构造方法、静态方法皆可被修饰)
3.可以修饰类,称之为最终类;最终类不能被继承
(eg:String不能被继承,因为被final修饰)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值