如果想用外部引用来调用一个内部类的构造方法,该怎么办?下面的程序中,将第7行的换成第8行就不行了。public class StudentTest
{
public static void main(String[] args)
{
String[] course = {"计算机原理", "编译方法", "数据结构"};
Student one = new Student("Tom","20021024");
Student.Course cou = one.setStudentCourse(course);
//Student.Course cou = new Course(course);
}
}/**
* 我们设计的学生基本类
*/
class Student
{
private String strName = "";//学生姓名
private String strNumber = "";//学号 public Student(String name, String number)
{
strName = name;
strNumber = number;
} public String toString()
{
String information = "学生姓名=" + strName + ", 学号=" + strNumber;
return information;
}
public Course setStudentCourse(String[] strCourse)
{
return new Course(strCourse);
}
//内部课程类
public class Course
{
private String[] strCourse;//学生课程的数组
private int courseNumber;
public Course(String[] course)
{
strCourse = course;
courseNumber = course.length;
getDescription();
}
private void getCourse()
{
for(int i = 0; i < courseNumber; i++)
{
System.out.print("\t" + strCourse[i]);
}
}
private void getDescription()
{
System.out.println("学生: " + Student.this.strName + " 学号是:" +
Student.this.strNumber + "。 一共选了" +
courseNumber + "门课,分别是:");
getCourse();
}
}
}
{
public static void main(String[] args)
{
String[] course = {"计算机原理", "编译方法", "数据结构"};
Student one = new Student("Tom","20021024");
Student.Course cou = one.setStudentCourse(course);
//Student.Course cou = new Course(course);
}
}/**
* 我们设计的学生基本类
*/
class Student
{
private String strName = "";//学生姓名
private String strNumber = "";//学号 public Student(String name, String number)
{
strName = name;
strNumber = number;
} public String toString()
{
String information = "学生姓名=" + strName + ", 学号=" + strNumber;
return information;
}
public Course setStudentCourse(String[] strCourse)
{
return new Course(strCourse);
}
//内部课程类
public class Course
{
private String[] strCourse;//学生课程的数组
private int courseNumber;
public Course(String[] course)
{
strCourse = course;
courseNumber = course.length;
getDescription();
}
private void getCourse()
{
for(int i = 0; i < courseNumber; i++)
{
System.out.print("\t" + strCourse[i]);
}
}
private void getDescription()
{
System.out.println("学生: " + Student.this.strName + " 学号是:" +
Student.this.strNumber + "。 一共选了" +
courseNumber + "门课,分别是:");
getCourse();
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货