Java 随心笔记8
一、包
在DOS窗口自动打包
例:javac -d . Demo.java
.代表当前位置
-d代表打包
如果不同的类在不同的包下面,需要通过import进行导包,
例:import com.baidu.Student;
com baidu代表文件夹,而Student则为需要调用的.class文件的名称。
二、局部类
JDK1.8之后 方法的局部变量 在局部内部类中的成员方法调用时,可以不加final.
1 class Demo 2 { 3 public static void main(String[] args) 4 { 5 Outer.Inner oi = new Outer().new Inner(); 6 oi.show();//输出成员内部类的成员方法中的值; 7 } 8 } 9 class Outer 10 { 11 public int num = 10; 12 class Inner 13 { 14 public int num = 20; 15 public void show(){ 16 int num =30; 17 System.out.println(num);//调用成员内部类的局部变量 18 System.out.println(this.num);//调用成员方法的成员方法 19 System.out.println(Outer.this.num);//调用外部类的成员变量 20 } 21 } 22 }
三、内部类:
1.定义:写在其他类的内部的类
2.按位置分为:
a.成员内部类
定义:定义在外部类中的成员位置,public,private
访问:外部类名.内部类名 变量名 = new 外部类名().new 内部类名();
1 class Student{ 2 public static void main(String[] args){ 3 Body.Heart BH = new Body().new Heart(); 4 BH.jump(); 5 } 6 } 7 class Body{ 8 private boolean life =true; 9 public class Heart{ 10 public void jump(){ 11 System.out.println("心脏噗的跳"); 12 } 13 } 14 }
b.局部内部类
定义:定义在外部类方法中的局部位置
访问:在外部类方法中,创建内部类对象,进行访问
1 public class test { 2 public static void main(String[] args) { 3 Party p = new Party(); 4 p.puffBall(); 5 } 6 } 7 class Party{ 8 public void puffBall(){ 9 class Ball{ 10 public void puff(){ 11 System.out.println("气123球膨胀了"); 12 } 13 } 14 new Ball().puff(); 15 } 16 }
c.匿名内部类(也是一种局部内部类)
作用:匿名内部类是创建某个类型子类对象的快捷方式
格式:new 父类或接口(){
//进行方法重写
};
传参:多个方法重写时,不建议使用
四、总结回顾
1.补充程序,如下
1 class Test 2 { 3 public static void main(String[] args) 4 { 5 Outer.method().show();//Outer.method()是匿名对象 6 } 7 } 8 interface Inter{ 9 void show(); 10 } 11 class Outer{ 12 //以下为补充程序 13 public static Inter method(){ 14 return new Inter(){ 15 public void show(){ 16 System.out.print("2018"); 17 } 18 }; 19 } 20 }
Outer.method().show();//链式调用 Outer是父类,method()是方法,当返回值为静态对象时能够调用show方法
同样的梦想,不一样的起点,大家共同进步,
微信公众号「孝客之乡」作者。