Java――类的应用(一) (二)

2014-11-24 11:52:33 · 作者: · 浏览: 58
b=" + b);

}

}



class test03 extends test02{ }



public class test {

public static void main(String[] args) {

test03 t3 = new test03();

t3.b = 2;

t3.print();

}

}

final class test02 {

int a , b;

void print() {

System.out.println("a=" + a);

}

void print1() {

System.out.println("b=" + b);

}

}

class test03 extends test02{ }

public class test {

public static void main(String[] args) {

test03 t3 = new test03();

t3.b = 2;

t3.print();

}

}


不多说了,只要写下test03 extends test02,编译器马上就会报错。

2、静态修饰符

由static修饰的成员变量或方法称为静态变量或静态方法。静态变量和静态方法都属于类,而不是属于任何具体的实例。当类中没有任何实例时,仍然可以访问静态变量和静态方法。只需要类名加”.”运算符就可以访问静态变量或调用静态方法。

1)、静态变量

静态变量也称为类变量,非静态变量称为实例变量(成员变量)。静态变量属于类,静态变量的值是保存在类的内存中的公共存储单元中,而不是保存在某一个对喜爱那个的内存空间中。当任何一个对象访问静态变量时,得到的值都是相同的。当一个对象对静态变量进行修改时,那么保存在类的内存中的公共存储单元中的值也将被修改。也就是说不管存在多少实例,静态变变量值分配一次值。下面是一个关于静态变量的实例:

[java]
class test03 {

static int a;

int b;

}



public class test {

public static void main(String[] args) {

test03 t1 = new test03();

test03 t2 = new test03();

t1.a = 1;

t1.b = 2;

t2.a = 3;

t2.b = 4;

System.out.println("t1.a=" + t1.a);

System.out.println("t1.b=" + t1.b);

System.out.println("t2.a=" + t2.a);

System.out.println("t2.b=" + t2.b);

}

}

class test03 {

static int a;

int b;

}

public class test {

public static void main(String[] args) {

test03 t1 = new test03();

test03 t2 = new test03();

t1.a = 1;

t1.b = 2;

t2.a = 3;

t2.b = 4;

System.out.println("t1.a=" + t1.a);

System.out.println("t1.b=" + t1.b);

System.out.println("t2.a=" + t2.a);

System.out.println("t2.b=" + t2.b);

}

}


我们会看到输出结果为:

t1.a=3

t1.b=2

t2.a=3

t2.b=4

2)、静态方法

静态方法也被称为类方法,一般是通过类的实例来调用静态方法。同时由于静态方法是属于类的,所以还可以通过类名来调用静态方法。下面分别通过类的实例和类名来调用静态方法。

[java]
class test03 {

static int a;

static void print()

{

System.out.println("" + a);

}

}



public class test {

public static void main(String[] args) {

test03 t1 = new test03();

t1.a = 10;

t1.print();

}

}

class test03 {

static int a;

static void print()

{

System.out.println("" + a);

}

}

public class test {

public static void main(String[] args) {

test03 t1 = new test03();

t1.a = 10;

t1.print();

}

}


在一个类中,将变量定义成静态的,同时再将方法也定义成静态的,通过类名来调用类中静态的成员方法或成员变量。下面是一个通过类名来访问本类中的静态变量和方法的实例。

[java]
class test03 {

static int a;

static void print()

{

System.out.println("" + a);

}

}



public class test {

public static void main(String[] args) {

test03.a = 10;

test03.print();

}

class test03 {

static int a;

static void print()

{

System.out.println("" + a);

}

}

public class test {

public static void main(String[] args) {

test03.a = 10;

test03.print();

}


对于静态方法在类体内可以直接被其他方法调用(包括成员方法和静态方法),在类体外可通过类名加”. ”运算符对其进行调用。静态方法能访问静态的成员变量,也能调用静态方法。但是静态方法不能访问成员变量,也不能调用非静态方法。下面是一个关于非晶态方法访问静态变量的实例:

[java]
class test03 {