2021-04-15
一、代码阅读:给定如下java代码,编译运行后,输出结果是什么?请解释原因
package sample;
public class MobilPhone {
public String brand;
public MobilPhone(){
this.brand="诺基亚";
}
public MobilPhone(String bra){
this.brand=bra;
}
public String buy(){
return "没发工资,买一个"+brand+"牌子的手机吧!";
}
public String buy(String reason){
return reason+",快买一个"+brand+"牌子的手机吧!";
}
}
//以上为MobilPhone类定义代码,以下为调用代码
package sample;
public class MobilPhoneTest {
public static void main(String[] args) {
MobilPhone mp =new MobilPhone();
mp.brand="苹果"; //发工资了,修改品牌属性
String detail=mp.buy("发工资了"); //发工资了,调用带参数的构造方法
System.out.println(detail);
}
}
输出结果为:
原因:String detail = mp.buy(“发工资了”); 调用了有参的方法
二、模拟一个简单的购房商贷月供计算器,按照以下公式计算总利息和每月还款金额:
总利息=贷款金额*利息
每月还款金额=(贷款金额+总利息)/贷款年限
package sample;
public class Mortgage {
public double money=0;
public double loan(double loan,int choose){
switch(choose) {
case 1:money = (loan + loan * 0.0603) / 36;
break;
case 2:money = (loan + loan * 0.0612) / 60;
break;
case 3:money = (loan + loan * 0.0639) / 240;
break;
default:
System.out.println("eorr!请重新输入!");
break;
}
System.out.println("月供为:"+money);
return money;
}
}
//以上Mortgage为类定义代码,以下为调用代码
package sample;
import java.util.Scanner;
public class MortgageTest {
public static void main(String[] args) {
Mortgage mp=new Mortgage();
Scanner sc=new Scanner(System.in);
System.out.println("请输入贷款金额:");
double money=sc.nextDouble();
System.out.print("请选择贷款年限:1.3年(36个月) 2.5年(60个月) 3.20年(240个月):");
int chiose=sc.nextInt();
mp.loan(money, chiose);
}
}
输出结果为:
三、根据三角形的3条边长,判断其是直角、钝角还是锐角三角形。程序的要求功能如下。
(1)先输入三角形3条边的边长。
(2)判断能否构成三角形,构成三角形的条件是“任意两边之和大于第三边”,如果不能构成三角形。则提示“不是三角形!”。
(3)如果能构成三角形,判断三角形是个何种三角形。如果三角形的任意一条边的平方等于其他两条边平方的和,则为直角三角形;如果在任意一条边的平方大于其他两条边平方的和,则为钝角三角形;否则为锐角三角形。
package sample;
public class Triangle {
public boolean showA(int a ,int b ,int c){
boolean con=false;
if((a+b)>c&&(a+c)>b&&(c+b)>a){
con=true;
}
return con;
}
public String Shape(int a,int b,int c){
String shape="";
if((a==b)&&(b==c)&&(c==a)){
shape="等边三角形";
}else if((a==b)||(b==c)||(c==a)){
shape="等腰三角形";
}else {
int A=a*a;
int B=b*b;
int C=c*c;
if((A>B+C)||(B>A+C)||(C>A+B)){
shape="钝角三角形";
}else if((A==B+C)||(B==A+C)||(C==A+B)){
shape="直角三角形";
}else{
shape="锐角三角形";
}
}
return shape;
}
}
//以上为为Triangle类定义代码,以下为调用代码
package sample;
import java.util.Scanner;
public class TriangleTest {
public static void main(String[] args) {
Triangle TriangleTest=new Triangle();
boolean con=true;
while(con){
Scanner input = new Scanner(System.in);
System.out .print("请输入第一条边:");
int num1=input.nextInt();
System.out .print("请输入第二条边:");
int num2=input.nextInt();
System.out .print("请输入第三条边:");
int num3=input.nextInt();
if(TriangleTest.showA(num1,num2,num3)){
System.out .print("这是一个"+TriangleTest.Shape(num1, num2, num3));
}else{
System.out .print("这不能构成三角形。");
}
System.out .print("\n继续吗?(y/n):");
String choice=input.next();
if(choice.equals("n")){
con=false;
System.out .print("谢谢使用!");
}
}
}
}
输出结果为: