一、
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("输入错误!");
}
}
}
二、
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;
}
}
三、
我最开始看的时候感觉三个都是不能通过的。
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());