JAVA类--继承

本次的JAVA实验是基于前两次JAVA实验的基础上完成的,本次试验的任务是:
在这里插入图片描述
在这里插入图片描述
第一题由于需要创建三个类,本人习惯于将类放在同一个文件中,因此代码为:
外部类做法:

package Test;
import java.util.Scanner;
class People{
	protected double heigh;
	protected double weight;
	public void speakHello(){
		System.out.println("Hello/你好");
	}
	public void averageHeight(){
		System.out.println("测量身高!!!");
		Scanner scanner=new Scanner(System.in);
		double[] a=new double[20];
		double sumheight=0,aveheight;
		int renshu;
		System.out.println("输入要输入的人数:");
		renshu=scanner.nextInt();
		System.out.println("输入这些人身高:");
		for(int i=0;i<renshu;i++){
			a[i]=scanner.nextDouble();
			sumheight+=a[i];
		}
		aveheight=(double)sumheight/renshu;
		System.out.println("平均身高为:"+aveheight);
	}
	public void averageWeight(){
		System.out.println("测量体重!!!");
		Scanner scanner=new Scanner(System.in);
		double[] b=new double[20];
		double sumweight=0,aveweight;
		int renshu;
		System.out.println("输入要输入的人数:");
		renshu=scanner.nextInt();
		System.out.println("输入这些人体重:");
		for(int i=0;i<renshu;i++){
			b[i]=scanner.nextDouble();
			sumweight+=b[i];
		}
		aveweight=(double)sumweight/renshu;
		System.out.println("平均身高为:"+aveweight);
	}
}
class ChinaPeople extends People{
    public void speakHello(){
		System.out.println("你好!");
	}
	public void chinaGongfu(){
		System.out.println("坐如钟,站如松,睡如弓");
	}
}
class AmericanPeople extends People{
    public void speakHello(){
		System.out.println("Hello!Hi!");
	}
	public void americanBoxing(){
		System.out.println("直拳,勾拳");
	}
}
public class sy81 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
       int i;
	   System.out.println("如果是中国人则选择0,如果是美国人选择1!");
	   System.out.println("请选择:");
       Scanner scanner=new Scanner(System.in);
       i=scanner.nextInt();
       if(i==0){
	   ChinaPeople ch1=new ChinaPeople();
       ch1.speakHello();
       ch1.chinaGongfu();
       ch1.averageHeight();
       ch1.averageWeight();
       }else{
       AmericanPeople am1=new AmericanPeople();
       am1.speakHello();
       am1.americanBoxing();
       am1.averageHeight();
       am1.averageWeight();
       }
	}

内部类,本人将它们当在两个文件中,命名为nbsy81,nbsy81jg
在nbsy81用于构造类文件中的代码为:

package Test;
import java.util.Scanner;
public class nbsy81 {
	public class People{
		protected double heigh;
		protected double weight;
		public void speakHello(){
			System.out.println("Hello/你好");
		}
		public void averageHeight(){
			System.out.println("测量身高!!!");
			Scanner scanner=new Scanner(System.in);
			double[] a=new double[20];
			double sumheight=0,aveheight;
			int renshu;
			System.out.println("输入要输入的人数:");
			renshu=scanner.nextInt();
			System.out.println("输入这些人身高:");
			for(int i=0;i<renshu;i++){
				a[i]=scanner.nextDouble();
				sumheight+=a[i];
			}
			aveheight=(double)sumheight/renshu;
			System.out.println("平均身高为:"+aveheight);
		}
		public void averageWeight(){
			System.out.println("测量体重!!!");
			Scanner scanner=new Scanner(System.in);
			double[] b=new double[20];
			double sumweight=0,aveweight;
			int renshu;
			System.out.println("输入要输入的人数:");
			renshu=scanner.nextInt();
			System.out.println("输入这些人体重:");
			for(int i=0;i<renshu;i++){
				b[i]=scanner.nextDouble();
				sumweight+=b[i];
			}
			aveweight=(double)sumweight/renshu;
			System.out.println("平均身高为:"+aveweight);
		}
	}
	public class ChinaPeople extends People{
	    public void speakHello(){
			System.out.println("你好!");
		}
		public void chinaGongfu(){
			System.out.println("坐如钟,站如松,睡如弓");
		}
	}
	public class AmericanPeople extends People{
	    public void speakHello(){
			System.out.println("Hello!Hi!");
		}
		public void americanBoxing(){
			System.out.println("直拳,勾拳");
		}
	}
}

nbsy81jg代码为:

package Test;
import java.util.Scanner;
public class nbsy81jg {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		 int i;
		   System.out.println("如果是中国人则选择0,如果是美国人选择1!");
		   System.out.println("请选择:");
	       Scanner scanner=new Scanner(System.in);
	       i=scanner.nextInt();
	       if(i==0){
		   ChinaPeople ch1=new ChinaPeople();
	       ch1.speakHello();
	       ch1.chinaGongfu();
	       ch1.averageHeight();
	       ch1.averageWeight();
	       }else{
	       AmericanPeople am1=new AmericanPeople();
	       am1.speakHello();
	       am1.americanBoxing();
	       am1.averageHeight();
	       am1.averageWeight();
	       }
	}

}

在这里我们用0表示中国人,用1表示美国人.
实验结果为:
在这里插入图片描述
第二题:
我们同样以外部类与内部类的两种方法进行介绍
外部类的代码:同样放在一个文件中,代码为:

package Test;
class Monkey{
	String name;
	int age;
	public void Monkey(){
		System.out.println("a");
	}
	public void Monkey(String name,int age){
		this.name=name;
		System.out.println(name+","+age);
		
	}
	public void Monkey(String name){
		this.name=name;
		System.out.println(name);
	}
	public void speak(){
		System.out.println("咿咿呀呀......");
	}
}
class People1 extends Monkey{
	String state;
	public void People(String name,int age){
		System.out.println("名字为"+name+"年龄为"+age);
	}
	public void speak(){
		System.out.println("小样的,不错嘛!会说话了!");
		if(state=="中国"){
		    System.out.println("你好");	
		}else{
		    System.out.println("hello!");
		}
		
	}
	public void think(){
		System.out.println("别说话!认真思考!");
	}
	public void people(String name,int age,String state){
		this.state=state;
		System.out.println("名字为:"+name+",年龄为:"+age+",国家为:"+state);
	}
}
public class sy82 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        Monkey m1=new Monkey();
        People1 p1=new People1();
        m1.Monkey();
        m1.Monkey("Jack",1);
        m1.Monkey("jack");
        m1.speak();
        p1.Monkey();
        p1.People("jack",2);
        p1.Monkey("jack");
        p1.speak();
        p1.think();
        p1.people("赖春晖",21,"中国");
	}

}

方法二:用内部类调用我们构建两个文件一个为nbsy82,nbsy82jg!
nbsy82中的代码为:

package Test;

public class nbsy2 {
	public class Monkey{
		String name;
		int age;
		public void Monkey(){
			System.out.println("a");
		}
		public void Monkey(String name,int age){
			this.name=name;
			System.out.println(name+","+age);
			
		}
		public void Monkey(String name){
			this.name=name;
			System.out.println(name);
		}
		public void speak(){
			System.out.println("咿咿呀呀......");
		}
	}
	public class People1 extends Monkey{
		String state;
		public void People(String name,int age){
			System.out.println("名字为"+name+"年龄为"+age);
		}
		public void speak(){
			System.out.println("小样的,不错嘛!会说话了!");
			if(state=="中国"){
			    System.out.println("你好");	
			}else{
			    System.out.println("hello!");
			}
			
		}
		public void think(){
			System.out.println("别说话!认真思考!");
		}
		public void people(String name,int age,String state){
			this.state=state;
			System.out.println("名字为:"+name+",年龄为:"+age+",国家为:"+state);
		}
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}

nbsy82jg内的代码为:

package Test;

public class nbsy2jg {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Monkey m1=new Monkey();
        People1 p1=new People1();
        m1.Monkey();
        m1.Monkey("Jack",1);
        m1.Monkey("jack");
        m1.speak();
        p1.Monkey();
        p1.People("jack",2);
        p1.Monkey("jack");
        p1.speak();
        p1.think();
        p1.people("赖春晖",21,"中国");
	
	}

}

运行结果为:
在这里插入图片描述
到此为止!实验就做完了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

L C H

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值