各位帮帮我看看这个程序出错怎么改才行?
题目:1.同一个包中分别编写Person,Student类。Person具有年龄,性别,姓名,地址这四个基本属性,并且它们的访问权限分别是私有的,缺省的,保护的,公有的,同时还拥有sleep方法。Student类从Person类继承,并且拥有学号属性,及学习方法。这里要求Person,Student类的构造函数是有参数的构造函数,通过有参数的构造函数对类中的数据进行初始化。
2. 在另外一个包中创建Teacher类,Teacher类从Person类中继承,教师具有职称属性及教学这个方法,同样要求教师类的构造函数是有参数的。
3. 分别创建教师类和学生类的对象,并编写程序观察这些哪些属性方法可以访问,哪些属性方法可以从父类继承下来。
4. 记录观察的结果,并得出结论。
现代码如下,编译报错,请各位大哥帮我改改
//1、第一个包student.java代码如下:
package stu;
class Person{
private int age = 20;
String sex="男";
protected String name="叶";
public String address="屏南";
void sleep(){
System.out.println("我正在睡觉,请误打扰!");
}
public Person(int age,String sex,String name,String address)
{
this.age=age;
this.sex=sex;
this.name=name;
this.address=address;
System.out.println("person类有参数的构造函数");
System.out.println(age);
System.out.println(sex);
System.out.println(name);
System.out.println(address);
sleep();
}
}
class Student extends Person{
int stu_no;
void study(){
System.out.println("我正在学习,请误打扰!");
}
public Student(int s_age,String s_sex,String s_name,String s_address,int stu_no)
{ super(s_age,s_sex,s_name,s_address);
this.stu_no=stu_no;
System.out.println("student类有参数的构造函数");
//System.out.println(age);
System.out.println(sex);
System.out.println(name);
System.out.println(address);
System.out.println(stu_no);
study();
}
}
//2、第二个包teacher.java代码如下:
package tea;
import stu.Person;
class Teacher extends Person{
String zhichen;
void teaching(){
System.out.println("我正在教书,稍后再来找我!");};
public Teacher(int t_age,String t_sex,String t_name,String t_address,String t_zhichen)
{ super(t_age,t_sex,t_name,t_address);
this.zhichen=t_zhichen;
System.out.println("Teacher类有参数的构造函数");
//System.out.println(age);
//System.out.println(sex);
System.out.println(name);
System.out.println(address);
System.out.println(t_zhichen);
teaching();
}
}
3、创建教师类和学生类的对象main.java代码如下:
import stu.*;
import tea.*;
public class Main {
public static void main(String [] args)
{
Student stu=new Student(24,"男","ylw","fujian",07164);
System.out.println("---------------------------"); Teacher tea=new Teacher(27,"男","lm","fujian","教授");
System.out.println("---------------------------");
}
} 运行错误情况如下:
1、第一个包student.java编译通过
2、第二个包teacher.java出错信息是:stu.person在stu中不是公共了,无法从外部软件包对其访问import stu.person
3、main.java出错信息是:stu.student在stu中不是公共了,无法从外部软件包对其访问Student stu=new Student(24,"男","ylw","fujian",07164); 请问这怎么改才行啊!急救
题目:1.同一个包中分别编写Person,Student类。Person具有年龄,性别,姓名,地址这四个基本属性,并且它们的访问权限分别是私有的,缺省的,保护的,公有的,同时还拥有sleep方法。Student类从Person类继承,并且拥有学号属性,及学习方法。这里要求Person,Student类的构造函数是有参数的构造函数,通过有参数的构造函数对类中的数据进行初始化。
2. 在另外一个包中创建Teacher类,Teacher类从Person类中继承,教师具有职称属性及教学这个方法,同样要求教师类的构造函数是有参数的。
3. 分别创建教师类和学生类的对象,并编写程序观察这些哪些属性方法可以访问,哪些属性方法可以从父类继承下来。
4. 记录观察的结果,并得出结论。
现代码如下,编译报错,请各位大哥帮我改改
//1、第一个包student.java代码如下:
package stu;
class Person{
private int age = 20;
String sex="男";
protected String name="叶";
public String address="屏南";
void sleep(){
System.out.println("我正在睡觉,请误打扰!");
}
public Person(int age,String sex,String name,String address)
{
this.age=age;
this.sex=sex;
this.name=name;
this.address=address;
System.out.println("person类有参数的构造函数");
System.out.println(age);
System.out.println(sex);
System.out.println(name);
System.out.println(address);
sleep();
}
}
class Student extends Person{
int stu_no;
void study(){
System.out.println("我正在学习,请误打扰!");
}
public Student(int s_age,String s_sex,String s_name,String s_address,int stu_no)
{ super(s_age,s_sex,s_name,s_address);
this.stu_no=stu_no;
System.out.println("student类有参数的构造函数");
//System.out.println(age);
System.out.println(sex);
System.out.println(name);
System.out.println(address);
System.out.println(stu_no);
study();
}
}
//2、第二个包teacher.java代码如下:
package tea;
import stu.Person;
class Teacher extends Person{
String zhichen;
void teaching(){
System.out.println("我正在教书,稍后再来找我!");};
public Teacher(int t_age,String t_sex,String t_name,String t_address,String t_zhichen)
{ super(t_age,t_sex,t_name,t_address);
this.zhichen=t_zhichen;
System.out.println("Teacher类有参数的构造函数");
//System.out.println(age);
//System.out.println(sex);
System.out.println(name);
System.out.println(address);
System.out.println(t_zhichen);
teaching();
}
}
3、创建教师类和学生类的对象main.java代码如下:
import stu.*;
import tea.*;
public class Main {
public static void main(String [] args)
{
Student stu=new Student(24,"男","ylw","fujian",07164);
System.out.println("---------------------------"); Teacher tea=new Teacher(27,"男","lm","fujian","教授");
System.out.println("---------------------------");
}
} 运行错误情况如下:
1、第一个包student.java编译通过
2、第二个包teacher.java出错信息是:stu.person在stu中不是公共了,无法从外部软件包对其访问import stu.person
3、main.java出错信息是:stu.student在stu中不是公共了,无法从外部软件包对其访问Student stu=new Student(24,"男","ylw","fujian",07164); 请问这怎么改才行啊!急救
1、person.java中程序如下:
package stu1;
public class Person{
private int age = 20;
String sex="男";
protected String name="叶";
public String address="屏南";
void sleep(){
System.out.println("我正在睡觉,请误打扰!");
}
public Person(int age,String sex,String name,String address)
{
this.age=age;
this.sex=sex;
this.name=name;
this.address=address;
System.out.println("person类有参数的构造函数");
System.out.println(age);
System.out.println(sex);
System.out.println(name);
System.out.println(address);
sleep();
}
}
2、Student.java中程序如下:
package stu2;
import stu1.*;
public class Student extends Person{
int stu_no;
void study(){
System.out.println("我正在学习,请误打扰!");
}
public Student(int s_age,String s_sex,String s_name,String s_address,int stu_no)
{ super(s_age,s_sex,s_name,s_address);
this.stu_no=stu_no;
System.out.println("student类有参数的构造函数");
//System.out.println(age);
// System.out.println(sex);
System.out.println(name);
System.out.println(address);
System.out.println(stu_no);
study();
}
}
3、teacher.java中程序如下:
package tea;
import stu1.*;
public class Teacher extends Person{
String zhichen;
void teaching(){
System.out.println("我正在教书,稍后再来找我!");};
public Teacher(int t_age,String t_sex,String t_name,String t_address,String t_zhichen)
{ super(t_age,t_sex,t_name,t_address);
this.zhichen=t_zhichen;
System.out.println("Teacher类有参数的构造函数");
//System.out.println(age); /*没有注释掉程序也出错,说这不是公共类*/
//System.out.println(sex);
System.out.println(name);
System.out.println(address);
System.out.println(t_zhichen);
teaching();
}
}
4、main.java中程序如下:
import stu1.*;
import stu2.*;
import tea.*;
public class Main {
public static void main(String [] args)
{
Student stu=new Student(24,"男","ylw","fujian",07164);
System.out.println("---------------------------"); Teacher tea=new Teacher(27,"男","lm","fujian","教授");
System.out.println("---------------------------");
}
}
程序运行还出错
提示:无法访问student、teacher类
import tea.Teacher;
public class Main1{
public static void main(String [] args)
{
Student stu=new Student(24,"男","ylw","fujian",07164);
System.out.println("---------------------------"); Teacher tea=new Teacher(27,"男","lm","fujian","教授");
System.out.println("---------------------------");
}
}
具体情况我也不是很清楚,你这样改改试试
import tea.Teacher;
public class Main{
public static void main(String [] args)
{
Student stu=new Student(24,"男","ylw","fujian",07164);
System.out.println("---------------------------"); Teacher tea=new Teacher(27,"男","lm","fujian","教授");
System.out.println("---------------------------");
}
}
忘了,改了你的类名,因为在我的文件夹里有了Main这个类了
Exception in thread "main"java,lang.noclassdeffounderror:Main<wrong name:Main>
at java.lang.classloader.defineclass1<native method>.......
还是没有结果啊
package stu1;
public class Person{
private int age = 20;
String sex="男";
protected String name="叶";
public String address="屏南";
void sleep(){
System.out.println("我正在睡觉,请误打扰!");
}
public Person(int age,String sex,String name,String address)
{
this.age=age;
this.sex=sex;
this.name=name;
this.address=address;
System.out.println("person类有参数的构造函数");
System.out.println(age);
System.out.println(sex);
System.out.println(name);
System.out.println(address);
sleep();
}
}
2、Student.java中程序如下:
package stu2;
import stu1.*;
public class Student extends Person{
int stu_no;
void study(){
System.out.println("我正在学习,请误打扰!");
}
public Student(int s_age,String s_sex,String s_name,String s_address,int stu_no)
{ super(s_age,s_sex,s_name,s_address);
this.stu_no=stu_no;
System.out.println("student类有参数的构造函数");
//System.out.println(age);
// System.out.println(sex);
System.out.println(name);
System.out.println(address);
System.out.println(stu_no);
study();
}
}
3、teacher.java中程序如下:
package tea;
import stu1.*;
public class Teacher extends Person{
String zhichen;
void teaching(){
System.out.println("我正在教书,稍后再来找我!");};
public Teacher(int t_age,String t_sex,String t_name,String t_address,String t_zhichen)
{ super(t_age,t_sex,t_name,t_address);
this.zhichen=t_zhichen;
System.out.println("Teacher类有参数的构造函数");
//System.out.println(age); /*没有注释掉程序也出错,说这不是公共类*/
//System.out.println(sex);
System.out.println(name);
System.out.println(address);
System.out.println(t_zhichen);
teaching();
}
}
4、Main.java中程序如下: //"main.java"改称了"Main.java"
import stu2.Student; //修改了这里,其中删除了一个import语句
import tea.Teacher; //修改了这里
public class Main {
public static void main(String [] args)
{
Student stu=new Student(24,"男","ylw","fujian",07164);
System.out.println("---------------------------"); Teacher tea=new Teacher(27,"男","lm","fujian","教授");
System.out.println("---------------------------");
}
}
我运行了,能出你所写的数据,你看看是不是你在写的时候另外的什么地方出错了;
noclassdeffounderror这个问题是不是你文件名或者是类名有问题