Java复习笔记(三)

 --------------内部类--------------------
public class first{
  private int x;
  private int z=20;
  class  second{
        int z=50;
        public void innermethod(){
              x=10; //可以直接使用外部类的成员
            System.out.println(first.this.z); //访问的是外部类的z ---20
          }
   }
  


  public void test(){
     Second sec=new Second();


  }




}




   *1、内部类可以直接使用外部类的成员,即使是private修饰也可以使用。
       如果内部类与外部类有同名的成员,可以用:  外部类.this.成员名
2、内部类的对象的实例化:
  A、在外部类的里面,new 内部类();
  *B、在外部类的定义的外面,外部类对象.new 内部类();




---------------------静态内部类------------------------------
public class first{
  private static int x;
   //内部类
 static class  second{


        public void innermethod(){
              x=10; //可以直接使用外部类的static修饰的成员
          }
   }


  
 *3、静态内部类可以直接使用外部类的static成员,即使是private修饰也可以使用。
3、静态内部类的对象的实例化:
  A、在外部类的里面,new 内部类();
  *B、在外部类的定义的外面,new 外部类.内部类();


-----------------本地方法内部类-------------------
public class MethodOuter {
   private int x;
   public  void  test(){
  final int y=5;
  //定义内部类
 class inner{
 public void innertest(){
 x=10;
 x=x+y;; //本方法内部类只能使用final修饰的局部变量
 }
 }//内部类的{结束
  inner z = new inner();//只能在方法体中实例化
  z.innertest();
   } //test结束
}


4、本地方法内部类可以使用外部类的成员。
5、本地方法内部类可以使用类定义所在的方法中的局部变量,必须对变量用final修饰
6、本地方法内部类只能在类定义的方法体范围内实例化。


-------------匿名内部类-------------------
public class OuterNiming {
int x;
//下面代码定义了一个没有名字的类,实现ISPeak接口
ISpeak ispeak = new ISpeak(){

public void speak() {
System.out.println("aaaaaa");
x=10;
}

};

public void  test(){
  final int y=50;

ISpeak ispeak = new ISpeak(){

public void speak() {
System.out.println("bbbbb");
x=20;
x=x+y;
}

};
}
}


------------Object----------


Clone方法实现克隆
  1、实现Cloneable接口
  2、重写Clone方法,修改访问修饰符
  3、调用clone方法得到一个“副本”
  4、浅克隆

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值