7.1 内部类
类两种重要成员:成员变量、方法
还允许有一种成员:内部类
内部类:Java支持在一个类中定义另一个类,这样的类称作内部类
外嵌类:包含内部类的类称为内部类的外嵌类
内部类和外嵌类之间重要的关系:
(1)外嵌类的成员变量在内部类中仍然有效,内部类的中方法也可以调用外嵌类的方法
(2)内部类类体中不可以声明类变量和类方法,外嵌类的类体中可以用内部类声明对象,作为外嵌类成员
(3)内部类仅供他的外嵌类使用,其他类不可以使用某个类的内部类声明对象
(4)内部类可以被修饰称为static内部类
(5)程序可以在其他类中使用static内部类来创建对象,static内部类不可以操作外嵌类中的实例成员变量
(6)非内部类不可以是static类
//例子:
public class Example7_1_RedCowForm {
static String fromName;
RedCow redCow;
Example7_1_RedCowForm() {
}
public Example7_1_RedCowForm(String string) {
// TODO Auto-generated constructor stub
redCow = new RedCow(10, 20, 30);
fromName = string;
}
public void showCowMess() {
redCow.speak();
}
class RedCow {
String cowName = "红牛";
int height;
int weight;
int price;
public RedCow(int h, int w, int p) {
// TODO Auto-generated constructor stub
height = h;
weight = w;
price = p;
}
void speak() {
System.out.println("我是:" + cowName + ",身高:" + height + ",体重:" + weight + ",价钱:" + price);
}
}
}
public class Example7_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Example7_1_RedCowForm redCowForm = new Example7_1_RedCowForm("红牛农场");
redCowForm.showCowMess();
redCowForm.redCow.speak();
}
}
/*
输出结果:
我是:红牛,身高:10,体重:20,价钱:30
我是:红牛,身高:10,体重:20,价钱:30
*/