?? group.java
字號(hào):
//【例3.7】 運(yùn)行時(shí)多態(tài)性的應(yīng)用。
public class Group
{
private Person1[] pgroup; //對(duì)象數(shù)組
private int count; //數(shù)組中對(duì)象個(gè)數(shù)
public Group(int n)
{
if (n<0)
n=10;
pgroup = new Person1[n];
count=0;
}
public Group()
{
this(10);
}
public void append(Person1 p1) //添加對(duì)象,參數(shù)傳遞對(duì)象引用
{
if (count<pgroup.length)
{
pgroup[count] = p1; //引用賦值
count++;
}
else
System.out.println("數(shù)組已滿,不能添加對(duì)象!");
}
public void print() //顯示所有人員信息
{
System.out.println("全部對(duì)象顯示如下:");
for (int i=0;i<count;i++)
{
System.out.println(pgroup[i].toString());
//運(yùn)行時(shí)多態(tài),可以省略toString()
}
Student2.howMany(); //分別統(tǒng)計(jì)父類和子類的人數(shù)
System.out.println();
}
public Person1 oldest() //返回年齡最大者,方法返回對(duì)象
{
Person1 p1;
int max=0; //最大值的下標(biāo)
for (int i=1;i<count;i++)
{
if (pgroup[i].age>pgroup[max].age)
max = i;
}
return pgroup[max]; //返回對(duì)象引用
}
}
class Group_ex
{
public static void main(String args[])
{
Group g1 = new Group();
g1.append(new Person1("李小明",21));
//添加父類對(duì)象
Person1 p1 = new Student2("張小莉",18,"計(jì)算機(jī)");
g1.append(p1); //添加子類對(duì)象
p1 = new Student2("胡東東",22,"電子信息");
g1.append(p1);
p1 = new Student2("胡東2",22,"電子信息");
g1.print();
System.out.println("年齡最大者是 ("+g1.oldest()+")");//省略了toString();
}
}
/*
程序運(yùn)行結(jié)果如下:
全部對(duì)象顯示如下:
李小明,21歲
張小莉,18歲,計(jì)算機(jī)專業(yè)
胡東東,22歲,電子信息專業(yè)
Person1.count=4 Student2.count=3
年齡最大者是 (胡東東,22歲,電子信息專業(yè))
*/
/*
程序正確:
類中print()方法與下列方法體等價(jià):
public void print() //顯示所有人員信息
{
System.out.println("全部對(duì)象顯示如下:");
for (int i=0;i<count;i++)
{
System.out.println(pgroup[i].toString());
//運(yùn)行時(shí)多態(tài),可以省略toString()
//或者
// Person1 p1=pgroup[i];
// if (!(p1 instanceof Student2))
// System.out.println(p1.toString()); //可以省略toString()
// else
// {
// Student2 s1= (Student2)p1; //對(duì)象的強(qiáng)制類型轉(zhuǎn)換
// System.out.println(s1.toString());
// }
}
System.out.println();
}
程序錯(cuò)誤:
*/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -