点击(此处)折叠或打开
- package com.pp;
-
- public class StaticFinal
- {
- static int a =9 ;//成员变量:static成员变量,也叫静态成员变量.可以通过类名使用这个成员变量
- final int FFb = 0;
-
- public static void run()
- {
- System.out.println("staic is runing");
- }
- public final void FFrun()
- {
- System.out.println("Final FFrun is runing");
- }
-
- public static void OKrun()
- {
- System.out.println("父类OK staic is runing");
- }
-
- public static void main(String[] args)
- {
- // TODO Auto-generated method stub
- /**
- * static关键字:可以用在属性、方法、类上。
- * static修饰成员变量:标示这个类不管生成了多少个对象,这多个对象共同使用这一个static所修饰的属性.
- * 可以通过类名使用这个静态成员变量
- * 静态成员变量具有单独的内存区域。java推荐使用类名直接访问静态成员变量
- */
- StaticFinal ss01 = new StaticFinal();
- StaticFinal ss02 = new StaticFinal();
- ss01.a = 10;
- System.out.println(ss02.a);
- StaticFinal.a = 89;
- System.out.println(ss02.a);
- System.out.println(ss01.a);
-
- /*
- * static修饰的方法也叫静态方法,静态方法具有单独的内存区域。java推荐使用类名直接访问静态方法。
- * 类名.方法(参数....);
- * static方法可以被继承,但是不能被重写。静态方法具有单独的内存区域。
- */
- StaticFinal.run();
-
- CC cbb = new CC();
- cbb.OKrun();
- cbb.FFrun();
-
- HKID hkid = new HKID();
- hkid.FFrun();
-
- Pensol pp = new Pensol();
-
- //pp.adress = new Adress();//编译错误,因为改变了adress指向的对象的地址
- pp.adress.name = "Shang Hai";//编译通过,因为adress所指向的地址没有变,只是对象里面name的内容改变了。
-
-
- }
-
- }
-
- class CC extends StaticFinal
- {
- //static方法可以被继承,但是不能被重写。静态方法具有单独的内存区域。
- public static void OKrun()
- {
- //super.OKrun();
- System.out.println("子类CCOK staic is runing");//静态方法具有单独的内存区域,不在对象的内存中。
- }
- }
-
- //当一个类被final修饰的时候,表示这个类是一个终态类,不能被继承。
- final class HKID extends StaticFinal
- {
- //final修饰属性:当一个属性被final修饰的时候,表示这个属性是一个终态属性,不能被重新赋值。
- final int b = 0; //标示 b是一个常量,final属性必须赋初始值
-
- //final修饰方法:当一个方法被final修饰的时候,表示这个方法是一个终态方法,不能被重写。
- public static void OKrun()
- {
- System.out.println("子类HKID staic is runing");//静态方法具有单独的内存区域,不在对象的内存中。
- }
- }
-
-
- class Pensol
- {
- //adress所指向的对象的地址不能改变。
- final Adress adress = new Adress();
- }
-
- class Adress
- {
- String name = "Bei jing";
- }