1、内部类
1 /* 2 * 内部类与外嵌类之间的重要关系 3 * 1、内部类的外嵌类的成员变量在内部类中仍然有效,内部类中的方法也可以调用外嵌类中的方法 4 * 2、内部类的类体中不可以声明类变量和类方法。外嵌类的类体中可以用内部类声明对象,作为外嵌类的成员 5 * 3、内部类仅供它的外嵌类使用,其它类不可以用某个类的内部类声明对象 6 * 7 * 注意:Java编译器生成的内部类的字节码文件的名字和通常的类不同,内部类对应的字节码文件的名字格式是 8 * “外嵌类名$内部类名” 9 * 内部类可以被修饰为static内部类 10 * 非内部类不可以是static 11 * 12 */ 13 class RedCowForm 14 { 15 static String formName; 16 RedCow cow; //内部类声明对象 17 RedCowForm() 18 {} 19 RedCowForm(String formName) 20 { 21 cow = new RedCow(150,112,5000); 22 this.formName = formName; 23 } 24 public void showCowMess() 25 { 26 cow.speak(); 27 } 28 static class RedCow 29 //class RedCow //内部类的声明 30 { 31 String cowName = "红牛"; 32 int height,weight,price; 33 RedCow(int height, int weight, int price) 34 { 35 this.height = height; 36 this.weight = weight; 37 this.price = price; 38 } 39 void speak() 40 { 41 System.out.println("偶是"+cowName+",身高:"+height+"cm 体重:"+weight+"kg,生活在"+ 42 formName); 43 } 44 } //内部类结束 45 } //外嵌类结束 46 47 48 public class 内部类 49 { 50 public static void main(String[] args) 51 { 52 // RedCowForm form = new RedCowForm("红牛农场"); 53 // form.showCowMess(); 54 // form.cow.speak(); 55 RedCowForm.RedCow redCow = new RedCowForm.RedCow(180,119,6000); 56 redCow.speak(); 57 System.out.println("Hello World!"); 58 } 59 }
时间: 2024-10-19 09:48:32