<Java>完成一个“描述一个人类”的Java应用程序

一、任务目标

  1. 人类的构造函数要具有无参数的构造函数,以及带有姓名、性别、出生日期等参数的构造函数,并在构造函数中输出一段描述xx(姓名)出生的文本。
  2. 人类描述吃饭的方法(函数)和描述睡觉的方法(函数)。例如睡觉方法的执行体为System.out.println() 函数,此函数输出一段例如“ xx(姓名)往床上躺倒,不久就睡着了……”之类的描述睡觉的文本。
  3. 实例化出张三和李四两个人类对象(变量),并为之赋初值。
  4. 在上述人类的基础上派生一个继承自人类的新的学生类,加入学号等学生特有的属性,加入上课、考试等方法,并实例化一个或几个学生类对象,完成这些学生类对象的各种属性和方法的调用。

二、面对对象和类

  1. 面对对象
        面对对象思想是人类最自然的一种思考方式,它将所有预处理的问题抽象为对象,同时了解这些对象具有哪些相应的属性以及展示这些对象的行为,以解决这些对象面临的问题,这样就在程序开发中引入了面向对象设计的概念,面向对象设计实质上就是对现实世界的对象进行建模操作。

  2.     类就是同一类事物的统称,如果将现实世界中的一个事物抽象城对象,类就是这类对象的统称,如鸟类、家禽类、人类等。类是构造对象是所依赖的规范,如一只鸟有一对翅膀,它可以用这对翅膀飞行,而基本上所有的鸟都具有翅膀这个特性和飞行的技能,这样具有相同特性和行为的一类事物就称为类,类的思想就是这样产生的。

三、“构造人类”应用程序

程序代码:

public class people{      //类名people
	private String name;  //定义字符串型成员变量name
	private String sex;     //定义字符串型成员变量sex
	private String born;    //定义字符串型成员变量born
	private String occ;     //定义字符串型成员变量occ
	public people()    //构造无参构造函数
	{
	}
	public people(String name,String sex,String born,String occ)   //构造有参构造函数
	{
		this.name = name;    //将参数值赋予类中的成员变量
		this.sex = sex;
		this.born = born;
		this.occ = occ;
		System.out.println("人物信息:");    //输出“具体的人物信息”
		System.out.println("姓名:"+name+"\n"+"性别:"+sex+"\n"+
				"生日:"+born+"\n"+"职业:"+occ+"\n");   
	}
	public void work()  //定义“工作”函数,用来描述人物的工作情况
	{
		System.out.println(name+"的生活:"+"\n");
		System.out.println(name+"大学毕业后成为一名"+occ+","+"每天朝9晚6"+"\n");
	}
	public void sleep()   //定义“睡觉函数”,用来描述人物的休息情况
	{
		System.out.println("辛勤的工作了一天,"+name+"回到家休息,"+"23:00,"+name+"洗漱完毕,往床上一躺,一会儿就进入了梦乡...zzz"+"\n");
	}
	public void birthday()    //定义“生日函数”,用来描述人物的活动情况
	{
		System.out.println("今天是2011年7月1日,同事们为" +name+ "庆祝生日");
		System.out.println("-------------------------------" +
		"----------------------------------------------------------");
	}
	/**
	 * @param args
	 * @param male 
	 * @param male 
	 * @param Bob 
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		people p1 = new people("张三","男性",1996+"年"+7+"月"+1+"日","程序员");  //实例化对象p1
		p1.work();  //实例p1调用“工作函数”
		p1.sleep();  //实例p1调用“睡觉函数”
		p1.birthday();  //实例p1调用“生日函数”
		people p2 = new people("李四","女性",1996+"年"+10+"月"+15+"日","会计");  //实例化对象p2
		p2.work();  //实例p2调用“工作函数”
		p2.sleep();   //实例p2调用“睡觉函数”
		p2.birthday();   //实例p2调用“生日函数”
	}
}

运行结果:
在这里插入图片描述

四、在“构造人类”的基础上构造“学生类”应用程序

程序代码:

public class people{      //类名people
    //特别注意:父类的成员变量定义时,要注意访问权限,使其能够被子类访问
	protected String name;  //定义字符串型成员变量name
	protected String sex;     //定义字符串型成员变量sex
	protected String born;    //定义字符串型成员变量born
	protected String occ;     //定义字符串型成员变量occ
	public people()    //构造无参构造函数
	{
	}
	public people(String name,String sex,String born,String occ)   //构造有参构造函数
	{
		this.name = name;    //将参数值赋予类中的成员变量
		this.sex = sex;
		this.born = born;
		this.occ = occ;
	}
	//子类student继承父类people的属性
	class student extends people{
		private String school;   //定义字符串型成员变量school
		private String id;      //定义字符串型成员变量id
		private String major;  //定义字符串型成员变量major
		//定义子类无参构造函数
		public student()
		{
		}
		 //定义子类有参构造函数
	    public student(String name,String sex,String born,String occ,String school,String id,String major){   
			super(name,sex,born,occ);  //super函数将子类的参数传递给父类的构造函数
			this.school = school;     //将参数值赋予类中的成员变量
			this.id = id;
			this.major = major;
			System.out.println("人物信息:");  //输出“具体的人物信息”
			System.out.println("姓名:"+name+"\n"+"性别:"+sex+"\n"+
					"生日:"+born+"\n"+"职业:"+occ+"\n"+"学校:"+school+"\n"+
					"学号:"+id+"\n"+"专业:"+major+"\n");
		}
		public void study()    //定义“学习函数”,用来描述任务的学习情况
		{
			System.out.println(name+"的学习:"+"\n");
			System.out.println(name+"就读于"+school+","+"学号"+id+","+name+"对"+major+"专业有着浓厚的兴趣"+"\n");
		}
		public void reward()  //定义“奖励函数”,用来描述任务的获奖情况
		{
			System.out.println(name+"正如自己的学号"+id+"一样不断攀升,"+name+"通过自己的拼搏,各科成绩均名列前茅,获得了国家奖学金");
			System.out.println("-------------------------------" +
			"----------------------------------------------------------");
		}
	}
	/**
	 * @param args
	 * @param male 
	 * @param male 
	 * @param Bob 
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		people s = new people();  //父类的外层实例
		//子类实例化
		student s1 = s.new student("小明","男性",1998+"年"+8+"月"+15+"日","学生","昆明理工大学","123","计算机");
		s1.study();  //实例s1调用“学习函数”
		s1.reward();  //实例s1调用“奖励函数”
	}
}

运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/yga_airspace/article/details/82750451
今日推荐