第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

匿名對象

標(biāo)簽:
Java


匿名对象

顾名思义就是没有名字的对象,这种对象创建直接new 就可以了,具体的实例如下:

l  Person类

package cn.itcast.AnonymousObject; public class Person {   //定义一个方法,用于对象的调用   public static void eat(){      System.out.println("人会吃饭");   }}


l  测试类

package cn.itcast.AnonymousObject; public class Test {   public static void main(String[] args) {      //创建有名对象      Person p = new Person();      p.eat();      //创建匿名对象      new Person().eat();      //调用方法,作为参数进行传递      method(new Person());      //调用method空参方法,用Person类型的参数进行接收      Person p1 = method();      p1.eat();   }   //对象创建写进方法中,进行调用   public static Person method(){//    Person p = new Person();//    return p;      return new Person();         }   //匿名对象可以作为参数进行传递   public static void method(Person p){      p.eat();   }}


匿名对象的特点:

1. 有名对象可以用引用变量随时进行调用,而匿名对象只能调用一次,还想调用,继续创建匿名对象进行调用,这样做浪费资源,不建议多次调用时使用。

2. 匿名对象可以当做参数进行传递调用。

内部类

顾名思义就是类内部包含的类,就是内部类。一个事物内部还包含更深层次的事物,这个事物就是内部类,比如描述汽车类,它的内部还有发动机类,发动机类就是内部类。

内部类的定义格式:

         外部类.内部类 变量名 = new 外部类().new 内部类();

         变量名.方法名();

外部类内部类成员调用规则:内部类调用外部类中的成员直接调用即可,外部类调用内部类中的成员需要创建外部类内部类的对象(如上内部类的创建格式)。

内部类的定义如下代码演示:

package cn.itcast.NestedClass内部类;//外部类public class Outer {   //定义一个成员变量   private int a = 1;   //内部类,定义在外部类的成员位置,可以加pubic private static   class Inner{      //定义一个方法      public void show(){         //内部类可以使用外部类中的成员         System.out.println("内部类方法"+a);      }   }}


l  测试类

package cn.itcast.NestedClass内部类; public class Test {   public static void main(String[] args) {      //创建对象,调用内部类方法      Outer.Inner n = new Outer().new Inner();      n.show();   }}

运行结果:                                        

内部类中同名成员变量的调用具体演示如下:

package cn.itcast.NestedClass内部类成员变量;/* * 外部类、内部类成员变量的调用 */public class Outer {   //外部类成员变量   int i = 1;   //内部类   class Inner{      //内部类成员变量      int i = 2;      public void show(){         //局部变量         int i = 3;         //调用方法内局部变量         System.out.println("方法内局部变量i的值:"+i);         //调用内部类i的值         System.out.println("内部类中i的值:"+this.i);         //调用外部类中i的值         System.out.println("外部类中i的值:"+Outer.this.i);      }   }}


l  测试类

package cn.itcast.NestedClass内部类成员变量;/* * 测试类 */public class Test {   public static void main(String[] args) {      //创建内部类的对象      Outer.Inner in = new Outer().new Inner();      in.show();   }}

运行结果:

局部内部类:定义在外部类方法中的内部类,具体代码演示如下:

package cn.itcast.NestedClass局部内部类; public class Outer {   //外部类的方法   public void out(){      //局部内部类,定义在外部类方法中成员位置的内部类      class Inner{         //内部类中的方法         public void inner(){            System.out.println("内部类中的方法");         }      }         //创建内部类的对象         Inner in = new Inner();         in.inner();   }}


l  测试类

package cn.itcast.NestedClass局部内部类; public class Test {   public static void main(String[] args) {      //创建外部类对象。调用内部类方法      Outer o = new Outer();      o.out();   }}


运行结果:

注意:局部内部类中的方法调用需要在外部类的方法中创建内部类的对象,然后再在主方法中创建外部类的对象才能调用局部内部类中的方法。

匿名内部类:就是将实现接口的实现类,重写接口方法,创建实现类的对象,调用实现类的方法这些步骤简化。

定义匿名内部类的格式:

new 接口类的类名(){

         重写后的方法

}.方法名();

具体的代码演示如下:

package cn.itcast.NestedClass匿名内部类; //接口类public interface Inner {   public abstract void smoking();}/*   实现接口的实现类   public class Inter implements Inner{      //重写抽象方法      public void smoking(){            }   }   //创建实现类的对象   Inner x = new Inner();   x.smoking();   Inner i = new Inter();   i.smoking(); */


l  测试类

package cn.itcast.NestedClass匿名内部类; public class Test {   public static void main(String[] args) {      //匿名内部类:将定义实现类,重写抽象方法,创建实现类的对象进行简化      new Inner(){         public void smoking(){            System.out.println("人在抽烟");         }      }.smoking();   }}


代码演示二:

package cn.itcast.NestedClass匿名内部类;//抽象类public abstract class Animal {   public abstract void show();   public abstract void sleep();}


l  测试类

package cn.itcast.NestedClass匿名内部类; public class Test2 {   public static void main(String[] args) {      //创建匿名内部类,这种方法只能调用一次方法,不能同时调用两次方法      /*new Animal(){         //重写抽象方法         public void show(){            System.out.println("吃饭");         }         public void sleep(){            System.out.println("睡觉");         }      }.show();*/      Animal a = new Animal(){         //重写抽象方法         public void show(){            System.out.println("吃饭");         }         public void sleep(){            System.out.println("睡觉");         }      };      a.show();      a.sleep();   }}


 


點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消