当前位置:编程学习 > JAVA >>

Java——类的应用(一)

类的应用

1、final关键字的使用

       final是Java中一个非常重要的关键字,它既可以修饰一个成员变量,也可以修饰一个成员方法,同时还可以修饰一个类。当一个成员变量被定义为final时,这个成员变量只能赋值一次;当一个成员方法被定义为final时,这个成员方法不能被重写;当一个类被定义为final时,这个类不能被继承。

      1)、final常量的使用

      在变量前加上final,则变量将成为一个常量。对于此常量赋值时只能赋值一次,而且可以不再它所声明的那一行上赋值,但在构造函数完成之前必须保证此变量有一个值。下面是一个实例:

[java]
class test03 
 

 
    int print() 
 
    { 
 
        final int a = 4; 
 
        return a; 
 
    } 
 

 
  
 
public class test { 
 
    public static void main(String[] args) 
 
    { 
 
        test03 t3 = new test03(); 
 
        System.out.println("a=" + t3.print()); 
 
    } 
 

class test03

{

    int print()

    {

        final int a = 4;

        return a;

    }

}

 

public class test {

    public static void main(String[] args)

    {

        test03 t3 = new test03();

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

    }

}


       一个类如果被定义成final,那么这个类只能被实例化一次,而且这个类中的方法参数也可以被定义成final;但如果定义成final,这个参数就只能赋值一次。下面是关于被定义为final的类的实例:

[java] 
class test03 
 

 
    int a; 
 
    int print(int b) 
 
    { 
 
        return a + b; 
 
    } 
 

 
  
 
public class test { 
 
    public static void main(String[] args) 
 
    { 
 
        final test03 t3 = new test03(); 
 
        t3.a = 1; 
 
        System.out.println("a+b=" + t3.print(9)); 
 
        t3 = new test03(); 
 
    } 
 

class test03

{

    int a;

    int print(int b)

    {

        return a + b;

    }

}

 

public class test {

    public static void main(String[] args)

    {

        final test03 t3 = new test03();

        t3.a = 1;

        System.out.println("a+b=" + t3.print(9));

        t3 = new test03();

    }

}


       我们会看到程序在t3 = new test03()这一行报错。这是因为test03被赋值了两次。

一个变量如果被定义成final类型,它就只能被赋值一次。不过下面的程序中b被赋值了两次,所以在编译时会报错:

[java] 
class test03 { 
 
    int print(final int b) { 
 
        b = 9; 
 
        return b; 
 
    } 
 

 
  
 
public class test { 
 
    public static void main(String[] args) 
 
    { 
 
        test03 t3 = new test03(); 
 
        System.out.println("b=" + t3.print(9)); 
 
    } 
 

class test03 {

    int print(final int b) {

        b = 9;

        return b;

    }

}

 

public class test {

    public static void main(String[] args)

    {

        test03 t3 = new test03();

        System.out.println("b=" + t3.print(9));

    }

}


我们会看到程序在b=2这一行报错。

       2)、最终方法

      当一个成员方法被定义为final时,该成员方法将不能被重写。不能重写提供了安全保护,但是防止子类重写该方法也失去了面向对象的很多优点。下面是一个被定义为final的方法不能被重写的实例:

[java] 
class test02 { 
 
    int a; 
 
    final void print() { 
 
        System.out.println("a=" + a); 
 
    } 
 

 
  
 
class test03 extends test02{ 
 
    int b; 
 
    void print() { 
 
        System.out.println("b=" + b); 
 
    } 
 

 
  
 
public class test { 
 
    public static void main(String[] args) { 
 
        test03 t3 = new test03(); 
 
        t3.b = 2; 
 
        t3.print(); 
 
    } 
 

class test02 {

    int a;

    final void print() {

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

    }

}

 

class test03 extends test02{

    int b;

    void print() {

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

    }

}

 

public class test {

    public static void main(String[] args) {

        test03 t3 = new test03();

        t3.b = 2;补充:软件开发 , Java ,

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,