`

JavaSE06—类的其他问题

 
阅读更多
JavaSE06—类的其他问题

1.       Object类



Object类是所有类的父类。如果一个类没有使用extends关键字明确表示继承另外一个类,那么这个类就默认继承Object类。

Object类的方法中有一个toString()方法。







2.       内部类

在类的内部也可以定义另一个类,如果类Outer的内部再定义一个类Inner,此时类Inner称为内部类。



内部类的使用举例:


class Outer

{

       int a = 35;

       void inst(){

              Inner in = new Inner();

              in.display();

       }

       class Inner

       {

              void display()

              {

                     System.out.println(a);

              }

       }

}

public class JavaTest

{

       public static void main(String[] args){

      

              Outer out = new Outer();

              out.inst();

      

       }

}
 


程序中内部类Inner可以直接调用外部类Outer中的a属性,如果把内部类拿到外面单独声明,那么在使用外部类中的a属性时,需要产生Outer类的对象,再由对象去调用Outer类的a属性。

注意:外部类是无法访问内部类的属性的。



在方法中也可以定义内部类:





class Outer

{

       int a = 5;

       void inst(){

             

              class Inner

              {

                     void display(){

 

                            System.out.println(a);

                                  

                     }

              }

              Inner in = new Inner();

              in.display();

      

       }

}




注意:在方法中定义的内部类只能访问方法中的final类型的局部变量,因为用final定义的局部变量相当于一个常量,它的声明周期抄出方法运行的生命周期。

3.       匿名内部类





interface A

{

       public void fun1();

}

 

class B

{

       int i = 10;

       public void get(A a){

             

              a.fun1();

             

       }

       public void test(){

 

              this.get(new A(){

             

                     public void fun1(){

 

                            System.out.println(i);

                     }

              });

 

       }

}
 

 

4.       匿名对象



匿名对象就是没有明确的声明的对象。

如下例:





class Person

{

       private String name = "张三";

       private int age = 25;

       public String talk(){

 

              return "我是:"+name+",今年"+age+"岁";

 

       }

}

public class TestNoName

{

       public static void main(String[] args){

      

              System.out.println(new Person().talk);

       }

}
 


5.       this关键字



this关键字强调对象本身,也就是调用该方法的对象。如下例:





class Person

{

       private String name;

       private int age;

       public Person(String name,int age){

      

              this.name = name;

              this.age = age;

 

       }

}
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics