zoukankan      html  css  js  c++  java
  • 定义一个Person类,其中包括:1.定义属性:姓名、年龄、民族作为成员变量。定义静态成员变量:人数2.定义构造方法:对成员变量进行初始化。3.定义多个方法:分别显示相应的属性值,例如getName(){System.out.print("名称="+name+";"); }4.定义一个方法“成长”:实现年龄的增加,每执行一次年龄增加1

    题目显示不全,完整题目描述:

    (1)定义一个Person类,其中包括:1.定义属性:姓名;年龄;民族作为成员变量。定义静态成员变量:人数2.定义构造方法:对成员变量进行初始化。3.定义多个方法:分别显示相应的属性值,例如getName(){System.out.print("名称="+name+";"); }4.定义一个方法“成长”:实现年龄的增加,每执行一次年龄增加1。5.定义一个静态方法“显示人数”:显示当前的人数。 (2)定义一个民族接口其中包括抽象方法:1.“习俗”:显示民族习俗。2.“政策”:民族优待政策。3.编译生成.class文件。 (3)定义一个“学生”类继承Person类,实现(2)中定义的民族接口。1.增加属性:“学历”,定义为字符串类型,表示本科生还是研究生。2.定义两个构造方法:构造方法重载;3.覆盖父类中的方法“成长”:实现根据年龄显示是研究生还是本科生,年龄小于23是本科生,否则是研究生。其中还要调用父类的“成长”方法,实现年龄的增加。4.实现接口中的两个抽象方法“习俗”和“政策”。“习俗”实现功能为:显示“春节,端午,中秋”等。 “政策”实现功能为:根据“民族”的值如果是汉族,显示“无”,否则显示“有优惠政策”。5.定义一个main方法。实例化一个父类对象,调用各种方法显示相关信息,然后,实例化一个学生类对象,分别调用相关方法,包括继承来的各种方法,进行覆盖后的方法等,实现多态效果,显示各种信息。

    完整代码如下:

    package naizi;
    
    class Person {
    
    protected String Name;
    protected int Age;
    protected String Nationality;
    public static int count=0;
    
    Person(String Name,int Age,String Nationality){
    	this.Name = Name;
    	this.Age = Age;
    	this.Nationality = Nationality;
    	count++;
    }
    
    //显示属性值
    public void getName() {
    	System.out.println("Name="+Name+";");
    }
    public void getAge() {
    	System.out.println("Age="+Age+";");
    }
    public void getNationality() {
    	System.out.println("Nationality="+Nationality+";");
    }
    
    //成长方法
    public void growUp(){
    	Age++;
    }
    
    //显示人数方法
    public void show(){
    	System.out.println("Person count:"+count+";");
    }
    }
    
    
    //定义Nationality接口 
    interface Nationality{
    	public void custom();
    	public void policy();
    }
    
    
    //定义一个Student类继承Person类,实现Nationality接口
    public class Student extends Person implements Nationality{
    
    	//子类的新成员变量
    	protected String Education;
    
    	//子类的构造方法调用父类的构造方法
    	Student(String Name,int Age,String Nationality,String Education){
    		super(Name, Age, Nationality);
    		this.Name = Name;
    		this.Age = Age;
    		this.Nationality = Nationality;
    		this.Education = Education;
    	}
    
    	//构造方法的重载,并且默认如果一个学生没有传入民族,默认为汉族
    	Student(String Name,String Education){
    		this(Name, 0, "han", Education);
    		this.Name = Name;
    		this.Education = Education;
    	}
    
    	//覆盖父类的成长方法
    	public void growUp(){
    		if("Undergraduate".equals(Education)){
    			System.out.println("Undergraduate;");
    		}else {
    			System.out.println("Postgraduate;");
    		}
    		Age++;
    		super.growUp();
    	}
    	public void custom(){
    		System.out.println("Spring Festival, Dragon Boat Festival, Mid-Autumn Festival");
    	}
    	public void policy(){
    		if("han".equals(Nationality)){
    			System.out.println("No preferential policies;");
    		}else {
    			System.out.println("Have preferential policies;");
    		}
    	}
    
    	//请参考main函数的内容编写以上内容 
    	public static void main(String args[]){ 
    		Person a=new Person("zhangsan",19,"han"); 
    		a.getName(); 
    		a.getAge(); 
    		a.getNationality(); 
    		a.growUp(); 
    		a.getAge(); 
    		a.show(); 
    
    		Person b=new Person("lisi",39,"man"); 
    		b.getName(); 
    		b.getAge(); 
    		b.getNationality(); 
    		b.growUp(); 
    		b.getAge(); 
    		b.show(); 
    
    		Student c=new Student("wanger",33,"man","Postgraduate"); 
    		c.growUp(); 
    		c.custom(); 
    		c.policy(); 
    		c.show(); 
    
    		Student d=new Student("wanger","Undergraduate"); 
    		d.growUp(); 
    		d.custom(); 
    		d.policy(); 
    		d.show(); 
    		} 
    	}
    

    测试如图:

  • 相关阅读:
    HTML5之标签
    Linux常用命令(二十四)
    Linux常用命令(二十三)
    Python 定位excel表格的最后一个单元格的位置
    tornado学习
    Linux一些基础命令
    用python打造自己的SDK--使用setuptools打包安装
    Centos开放指定端口命令
    python sqlalchemy基本使用
    python rpc
  • 原文地址:https://www.cnblogs.com/zqm-sau/p/9763530.html
Copyright © 2011-2022 走看看