Java57_孙明明_Java_作业1108

一、

package org.jsoft.HomeWork1;
public class People {
double width;
double height;
public double getWidth() {
    return width;
}
public void setWidth(double width) {
    this.width = width;
}
public double getHeight() {
    return height;
}
public void setHeight(double height) {
    this.height = height;
}


public String speakHello(){
    return "hello";
}public  double averageHeight(){
    
    
    return height;
}
public double averageWeiht(){
    return width;
    
}
}

package org.jsoft.HomeWork1;
public class ChinaPeople extends People{
public void chinaMartial(){
}
public String  speakHello(){
    return "在中国说你好! ";
}public double avgerHeight(){
    return 1.1;
}public double avgerWidth(){
    return 1.1;
}
}

package org.jsoft.HomeWork1;
public class AmericanPeople extends People{
public String americanBoxing(){
    return "并且美国人的BOX贼强!";
    }
public String speakHello(){
    return "Speaking Hello in American!";
}
public double averageWidth(){
return 1.1;

}public double averageHeight(){
    return 1.1;
    
}
}
package org.jsoft.HomeWork1;
public class BeiJingPeople  extends ChinaPeople{
 
    public String beiJingOpera(){
        return "并且北京京剧挺好看的!";
    }
    public String speakHello(){
        return " ";
    }
    public double averageWidth(){
        return 1.1;
    }
    public double averageHeight(){
        
        return 1.1;
    }
}
测试People类

package org.jsoft.HomeWork1;

import java.util.Scanner;

public class TestPeople {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("请输入你要调查的国家(中国/美国):");
        Scanner sc=new Scanner(System.in);
        String a=sc.next();
if(a.equals("中国")){
    ChinaPeople cp=new ChinaPeople(); //实例化ChinaPeople类的对象。
    BeiJingPeople bj=new BeiJingPeople();//实例化BeiJingPeople类的对象。
    System.out.println(cp.speakHello()+bj.beiJingOpera());//调用并输出ChinaPeople中的speakHello()方法。和BeiJingPeople中的beiJingOpera()方法
       
    
    System.out.println("请输入你要调查的性别:");
    String b=sc.next();
    if(b.equals("男"))//如果输入的为男性则输出中国男性的平均身高和体重
    {
        cp.setWidth(75.6);//传递实参
        cp.setHeight(176.4);//传递实参
     System.out.println("中国男士的平均体重为:"+cp.averageWeiht()+"公斤");
     System.out.println("中国男士的平均身高为:"+cp.averageHeight()+"厘米");
    
    } else  //如果不是男性那就是女性,输出中国女性的平均身高和体重
    {
         cp.setWidth(55.7);//传递实参
         cp.setHeight(155);//传递实参
         System.out.println("中国女士的平均体重为:"+cp.averageHeight()+"公斤");
         System.out.println("中国女士的平均升高为:"+cp.averageHeight()+"厘米");
    }
    
    }else if(a.equals("美国")) //如果输入的是美国,则执行接下来的入局
    {
        AmericanPeople am=new AmericanPeople(); //实例化American类中的对象am
        System.out.println(am.speakHello()+am.americanBoxing());//调用并输出American中的speakHello方法和americanBoxing方法。
        System.out.println("请输入你要调查的性别:");
        String c=sc.next();
        if(c.equals("男"))//如果输入的为男性。则输出美国男性的平均身高和体重
        {
            am.setHeight(179.4);//给Height传递实参
            am.setWidth(80.4);//给Width传递实参
            System.out.println("美国男士的平均体重为:"+am.averageWeiht()+"公斤");
            System.out.println("美国男士的平均身高为:"+am.averageHeight()+"厘米");
        }else if(c.equals("女"))//输出美国女性的平均身高和体重
        {
            am.setHeight(167.7);//传实参
            am.setWidth(60.4);//传实参
            System.out.println("美国女士的平均体重为:"+am.averageWeiht()+"公斤");
            System.out.println("美国女士的平均身高为:"+am.averageHeight()+"厘米");
        }
}else{
    System.out.println("输入错误!");
}
    }

}
141553_v42w_3715009.png

141614_17FH_3715009.png

 

二、 

package org.jsoft.HomeWork2;
public class Account {
long id;

double balance;
String password;
public long getId() {
    return id;
}
public void setId(long id) {
    this.id = id;
}
public double getBalance() {
    return balance;
}
public void setBalance(double balance) {
    this.balance = balance;
}
public String getPassword() {
    return password;
}
public void setPassword(String password) {
    this.password = password;
}

}

package org.jsoft.HomeWork2;

public class SavingAccount {
    double a;
 public double getA() {
        return a;
    }
    public void setA(double a) {
        this.a = a;
    }
public double interestRate(){
    
     return a;
 }
    
}

package org.jsoft.HomeWork2;

public class CreditAccount {
public   double creditLine(){
    return 10000.4;
}
}
 

测试Account类

package org.jsoft.HomeWork2;

import java.util.Scanner;

public class TestAccount extends SavingAccount {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
System.out.println("请输入你的用户类型(存储账户/信用账户):");
Scanner sc=new Scanner(System.in);
String str=sc.next();
TestAccount t=new TestAccount();//实例TestAccount类的对象t
Account a=new Account();//实例化Account 类的对象
CreditAccount c=new CreditAccount(); //实例化 CreditAccount类的对象
if(str.equals("存储账户")) //判断用户的账户类型并执行相应的语句
{

System.out.println("提示:最近银行的存款利率快要涨到最高了!请注意存钱啦!!!!"+"\n"+"银行里存款利率为:"+ t.interestRate());//TestAccount中重写后的interstRate方法并输出
    System.out.println("请输入账户ID:");
      long  str3=sc.nextLong();
          a.setId(str3);//将值 赋值给Account 中的ID属性
    a.setBalance(10000);//将 Account 中的balance赋一个值
 System.out.println("请输入6位新密码:");
 String str1=sc.next();
 if(str1.length()==6)//判断 如果输入的密码长度为6,则继续执行。不是则显示密码输入的长度不符
 {
     do  //循环,用来确定两次输入的密码一致
     {
     System.out.println("请在重复输入一遍新密码:");
     String str2=sc.next();
     if(str1.equals(str2))//如果两次输入的密码一直则跳出循环
     {
     a.setPassword(str1);
     System.out.println("修改成功!");
     break;
     }else //不一致则继续循环
     {
         System.out.println("两次修改的密码不一样");
     }}while(true);
 }else{
     System.out.println("密码长度不符,不予修改!");
 }
        
        
        
    }else if(str.equals("信用账户")){
        System.out.println("请输入账户ID:");
        long str4=sc.nextLong();
        if(str4==123456)  //如果用户输入的ID 为123456,则继续进行。
        {        System.out.println("请输入密码:");
        String  str5=sc.next();
        if(str5.equals("123456"))//如果密码是123456 则提示此用户的信用额度
        {
            System.out.println("该用户的信用额度为:"+c.creditLine());
        }}
        
    }
    else{
        System.out.println("输入错误!");
    }

} public double interestRate(){
 return 0.04;
}
}

142237_zu4u_3715009.png

142303_tcgY_3715009.png

 

三、

我最开始看的时候感觉三个都是不能通过的。

A、Super 中的方法修饰符为默认权限。

       Sub 中的修饰符为 public 。所以不能通过。

                  因为B、C方法的声明都与Super不同,所以不能通过

后来执行了发现B、C都能通过。

我理解的是:

能通过。B、C 是Sub 中定义的方法。跟Super没什么关系。既不是重写,也不是重载。

 四、

 

mc1 是MyClass实例化的对象。但是并没有赋值。

应该加上: mc1.setValue(11);

输出的语句应该写:System.out.println(mc1.getValue());

                                System.out.println(mc2.getValue());

 

 

转载于:https://my.oschina.net/u/3715009/blog/1570504

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值