-
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";
-
}
阅读(1301) | 评论(0) | 转发(0) |