定义一个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();
}
}
测试如图:

定义一个Person类,其中包括:1.定义属性:姓名、年龄、民族作为成员变量。定义静态成员变量:人数2.定义构造方法:对成员变量进行初始化。3.定义多个方法:分别显示相应的属性值,例如getName(){System.out.print("名称="+name+";"); }4.定义一个方法“成长”:实现年龄的增加,每执行一次年龄增加1的更多相关文章
- 控制uniFrame显示的一个管理类
控制uniFrame显示的一个管理类 (2016-03-29 06:41:17) 转载▼ 标签: delphi 分类: uniGUI 利用uniGUI Frame的机制来搭建项目,是非常好的实现方式, ...
- c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.ExitThread(); System.Environment.Exit(0);
本文实例总结了C#中WinForm程序退出方法技巧.分享给大家供大家参考.具体分析如下: 在c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit ...
- C# 如何定义让PropertyGrid控件显示[...]按钮,并且点击后以下拉框形式显示自定义控件编辑属性值
关于PropertyGrid控件的详细用法请参考文献: 1.C# PropertyGrid控件应用心得 2.C#自定义PropertyGrid属性 首先定义一个要在下拉框显示的控件: using Sy ...
- java定义一个Circle类,包含一个double型的radius属性代表圆的半径,一个findArea()方法返回圆的面积
需求如下:(1)定义一个Circle类,包含一个double型的radius属性代表圆的半径,一个findArea()方法返回圆的面积. (2)定义一个类PassObject,在类中定义一个方法pri ...
- java基础—继承题目:编写一个Animal类,具有属性:种类;具有功能:吃、睡。定义其子类Fish
编写一个Animal类,具有属性:种类:具有功能:吃.睡.定义其子类Fish package zhongqiuzuoye; public class Animal { //属性 private Str ...
- 简单练习题2编写Java应用程序。首先定义一个描述银行账户的Account类,包括成员变 量“账号”和“存款余额”,成员方法有“存款”、“取款”和“余额查询”。其次, 编写一个主类,在主类中测试Account类的功能
编写Java应用程序.首先定义一个描述银行账户的Account类,包括成员变 量“账号”和“存款余额”,成员方法有“存款”.“取款”和“余额查询”.其次, 编写一个主类,在主类中测试Account类的 ...
- .编写Java应用程序。首先,定义一个Print类,它有一个方法void output(int x),如果x的值是1,在控制台打印出大写的英文字母表;如果x的值是2,在 控制台打印出小写的英文字母表。其次,再定义一个主类——TestClass,在主类 的main方法中创建Print类的对象,使用这个对象调用方法output ()来打印出大 小写英文字母表。
package com.homework.zw; //类Print部分 public class Print1 { int x; void output() { if(x==1) { for(int ...
- C++:如何正确的定义一个接口类
C++中如何定义接口类?首先给接口类下了定义:接口类应该是只提供方法声明,而自身不提供方法定义的抽象类.接口类自身不能实例化,接口类的方法定义/实现只能由接口类的子类来完成. 而对于C++,其接口类一 ...
- 实验四 (1):定义一个形状类(Shape)方法:计算周长,计算面积
(1)定义一个形状类(Shape)方法:计算周长,计算面积子类:矩形类(Rectangle) :额外的方法:differ() 计算长宽差圆形类(Circle)三角形类(Triangle)正方形类(Sq ...
随机推荐
- Element-UI 2.4.11 版本 使用注意(发现一点更新一点)
1.$Vue.$refs.addForm.resetFields() 的resetFields()方法重置到默认值并不是 ,你在form绑定对象上写的默认值 ,而是这个form被渲染出来之后第一次赋到 ...
- 设计一个完美的http缓存策略
1.前言 作为一个前端,了解http缓存是非常必要,它不仅是面试的必要环节,也更是实战开发中必不可少需要了解的知识点,本文作者将从缓存的概念讲到如何在业务中设计一个合理的缓存架构,带你一步一步解开ht ...
- Go-json解码到结构体-踩坑
package main import ( "encoding/json" "fmt" ) type User struct { Name string `js ...
- 第一次接触Linux
一:文件目录操作命令 (一)创建文件 vim 文件名 按i进入插入模式 写完文件后,先按Esc, 再输入 :w ...
- 对已经存在的hbase表修改压缩方式
业务上可能会遇到这种情况,在最初创建hbase表时候,未指定压缩方式,当数据导入之后,由rowkey带来的数据膨胀导致hdfs上的数据大小远远大于原始数据大小.所以这时候可能就不得不考虑使用压缩,但是 ...
- Glide3升级到Glide4碰到的问题汇总以及部分代码修改
版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/188 Glide.3x的版本是3.7.0,Glide4.x ...
- 使用VS Code 开发.NET CORE 程序指南
1. 前言 近两年来,很多前端的同学都开始将 VSCode 作为前端主力开发工具,其丰富的扩展给程序开发尤其是前端开发带来了很多便利,但是作为微软主力语言的 .NET,却由于有宇宙第一编辑器 Visu ...
- UVA10831题解
Gerg's Cake Gerg is having a party, and he has invited his friends. p of them have arrived already, ...
- js的兼容问题以及解决方式(持续更新)
我们在使用js操作页面的时候兼容问题是很常见的,下面将常见的兼容问题及其对应的解决方法分享给大家,并持续更新: 1.获取事件对象的兼容写法: IE中:window.event 正常浏览器中:对 ...
- hbase G1 GC优化
本文借鉴之前HBaseConAsia2017,小米公司对hbase g1 gc的优化分享.此外还可以参考apache官方博客对于hbase g1 gc优化的一篇文章(Tuning G1GC For Y ...