定义类BMI
定义一个类BMI表示一个人的身体质量指数状况,BMI类的要求如下:
1、定义一个private的成员变量name,表示人的姓名;
2、定义一个成员变量height,表示人的身高,单位是千克;
3、定义一个成员变量weight,表示人的体重,单位是米;
4、定义一个构造器,只初始化人的姓名,身高和体重则按默认值初始化;
5、再定义一个构造器,初始化人的姓名、身高和体重三个成员变量,具体可参考Main类中的调用;
6、定义一个公有方法:String getName();返回该BMI对象对应的人的姓名;
6、定义公有方法getBMI( ),该方法只返回某个BMI对象的BMI指数值,如果身高值为0,则直接返回0.0;
定义BMI类:
class BMI{
}
Main类代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
BMI bmi1 = new BMI("zhangsan");
Scanner scanner = new Scanner(System.in);
String name = scanner.next();
double height = scanner.nextDouble();
double weight = scanner.nextDouble();
BMI bmi2 = new BMI(name,height,weight);
System.out.printf("姓名:"+bmi1.getName()+"的BMI是:%.4f\n",bmi1.getBMI());
System.out.printf("姓名:"+bmi2.getName()+"的BMI是:%.4f\n",bmi2.getBMI());
}
}
/* 请在后面填写答案 */
我们按照题意,一个一个模块来
定义属性:
直接上代码:
private String name;
public double height;
public double weight;
小技巧:确定成员变量类型,有时看看main代码,你就了然了

定义构造器:

4.是默认构造器为什么传参呢?还是再看一眼main方法
![]()
new调用默认构造器时,()里初始化了姓名。调用时传了参,身为构造器肯定要大胆接收
public BMI(String name1)//只初始化名字的构造器
{
name = name1;
weight = 0.0;
height = 0.0;//按默认值初始化,0,但是这里我写1.0?
}
5.看了眼题,有参构造器,不过多参数请注意变量顺序和传参的顺序一一对应。
![]()
于是:
public BMI(String name2,double hei,double wei)//有参构造器
{
name = name2;
height = hei;
weight = wei;//对应赋值,注意顺序
}
定义方法:

注意审题:
(现在)一般方法没说私有,我们都写public,说公有,也是public。
public String getName()//好习惯:先写方法名,再写返回类型;该大写就大写
{
return name;
}//getter方法
bmi = 体重 / (身高^2)
题上说,若身高为0,那么直接返回0.0
public double getBMI()
{
if(height != 0.0)
return weight / (height * height);
else
return 0.0;
}
这道题还是注意格式的规范,等定义类写的顺手,java才算真正是入门:
完整代码参考:
class BMI{
private String name;
public double height;
public double weight;
public BMI(String name1)
{
name = name1;
weight = 0.0;
height = 0.0;
}
public BMI(String name2,double hei,double wei)
{
name = name2;
height = hei;
weight = wei;
}
public String getName()
{
return name;
}
public double getBMI()
{
if(height != 0.0)
return weight / (height * height);
else
return 0.0;
}
}
题外话:
定义类概要知识入口

&spm=1001.2101.3001.5002&articleId=136747499&d=1&t=3&u=cc782f1c61444c17a0adee2d4b33f555)
3414

被折叠的 条评论
为什么被折叠?



