题目:
1.选出3个女生 得到身高和体重
2.计算女生的身高和 体重和
3.计算女生平均体重和平均身高
4.判断 如果平均身高>160 体重<50 都是美女 否则不是
阶段一
1.选出3个女生 得到身高和体重
我们开始建立一个Meinv类
分别用数组heights
,wights
定义女生的身高和体重
ArrayList<Integer> heights = new ArrayList();
ArrayList<Integer> wights = new ArrayList();
我们定义了数组后,我们把三位女生的信息写进去
heights.add(180);
heights.add(170);
heights.add(160);
wights.add(50);
wights.add(45);
wights.add(46);
由上面代码知道,这三位女生身高体重分别是
女生1:身高-180,体重-50
女生2:身高-170,体重-45
女生3:身高-160,体重-46
进行这样操作后,我们在java中得到了三位女生的信息了。
2.计算女生的身高和 体重和
我们定义两个变量sumW
,sumH
分别表示体重和与身高和
int sumW = 0;
int sumH = 0;
用for循环计算体重和与身高和
for (int i = 0; i < heights.size(); i++) {
sumH = sumH + heights.get(i);
sumW += wights.get(i);
}
我们由于用了数组,也可以用增强for循环遍历数组
// 增强for循环
for (int i : heights) {
sumH = sumH + i;
}
for (int i : wights) {
sumW = sumW + i;
}
最后我们输出下看看体重和与身高和
System.out.println("身高和:"+sumH);
System.out.println("体重和:"+sumW);
得到的结果是这样的
3.计算女生平均体重和平均身高
这里我们一样,定义两个变量avgH
,avgW
分别表示平均身高与平均体重
int avgH = 0;
int avgW = 0;
计算
avgH = sumH / heights.size();
avgW = sumW / wights.size();
查看结果
System.out.println("平均身高:" + avgH);
System.out.println("平均体重:" + avgW);
4.判断 如果平均身高>160 体重<50 都是美女 否则不是
这边我们用简单的if语句判断就好了
if (avgH > 160 && avgW < 50) {
System.out.println("是美女");
} else {
System.out.println("不是美女");
}
得出的结果:
现阶段总体代码
package test;
import java.util.ArrayList;
public class Meinv {
public static void main(String[] args) {
/*信息*/
ArrayList<Integer> heights = new ArrayList();
ArrayList<Integer> wights = new ArrayList();
heights.add(180);
heights.add(170);
heights.add(160);
wights.add(50);
wights.add(45);
wights.add(46);
/*身高和体重和*/
int sumW = 0;
int sumH = 0;
// for (int i = 0; i < heights.size(); i++) {
// sumH = sumH + heights.get(i);
// sumW += wights.get(i);
// }
// 增强for循环
for (int i : heights) {
sumH = sumH + i;
}
for (int i : wights) {
sumW = sumW + i;
}
System.out.println("身高和:" + sumH);
System.out.println("体重和:" + sumW);
/*平均体重和平均身高*/
int avgH = 0;
int avgW = 0;
avgH = sumH / heights.size();
avgW = sumW / wights.size();
System.out.println("平均身高:" + avgH);
System.out.println("平均体重:" + avgW);
/*如果平均身高>160 体重<50 就是美女 否则不是*/
if (avgH > 160 && avgW < 50) {
System.out.println("是美女");
} else {
System.out.println("不是美女");
}
}
}
阶段二
这样就完了吗?
当然不是了。从上面的代码可以知道,这些数字都是我提前写进去的。如果以后要提前输入,这样多不方便。我们接下来就改下,让我们的数据随着我们输入而变化。
JAVA中获取键盘输入的方法是使用Scanner类
选出3个女生 得到身高和体重
这里我们把之前提前写入的数组注释掉,并用scanner
代替
// heights.add(180);
// heights.add(170);
// heights.add(160);
// wights.add(50);
// wights.add(45);
// wights.add(46);
Scanner sc = new Scanner(System.in);
heights.add(sc.nextInt());
heights.add(sc.nextInt());
heights.add(sc.nextInt());
wights.add(sc.nextInt());
wights.add(sc.nextInt());
wights.add(sc.nextInt());
结果(绿色字体为手动输入信息)
可是这样完全没有提示信息,不知道输入到第几个女生,不知道当前要输入的是体重还是身高。
那么我们在改下代码:用循环来提示输入的信息
Scanner sc = new Scanner(System.in);
// heights.add(sc.nextInt());
// heights.add(sc.nextInt());
// heights.add(sc.nextInt());
// wights.add(sc.nextInt());
// wights.add(sc.nextInt());
// wights.add(sc.nextInt());
for (int i = 0; i <= 2; i++) {
System.out.println("请输入第" + (i + 1) + "个女生的身高:");
heights.add(sc.nextInt());
System.out.println("请输入第" + (i + 1) + "个女生的体重:");
wights.add(sc.nextInt());
}
结果:
现阶段总体代码
package test;
import java.util.ArrayList;
import java.util.Scanner;
public class Meinv {
public static void main(String[] args) {
/*信息*/
ArrayList<Integer> heights = new ArrayList();
ArrayList<Integer> wights = new ArrayList();
// heights.add(180);
// heights.add(170);
// heights.add(160);
// wights.add(50);
// wights.add(45);
// wights.add(46);
Scanner sc = new Scanner(System.in);
// heights.add(sc.nextInt());
// heights.add(sc.nextInt());
// heights.add(sc.nextInt());
// wights.add(sc.nextInt());
// wights.add(sc.nextInt());
// wights.add(sc.nextInt());
for (int i = 0; i <= 2; i++) {
System.out.println("请输入第" + (i + 1) + "个女生的身高:");
heights.add(sc.nextInt());
System.out.println("请输入第" + (i + 1) + "个女生的体重:");
wights.add(sc.nextInt());
}
/*身高和体重和*/
int sumW = 0;
int sumH = 0;
// for (int i = 0; i < heights.size(); i++) {
// sumH = sumH + heights.get(i);
// sumW += wights.get(i);
// }
// 增强for循环
for (int i : heights) {
sumH = sumH + i;
}
for (int i : wights) {
sumW = sumW + i;
}
System.out.println("身高和:" + sumH);
System.out.println("体重和:" + sumW);
/*平均体重和平均身高*/
int avgH = 0;
int avgW = 0;
avgH = sumH / heights.size();
avgW = sumW / wights.size();
System.out.println("平均身高:" + avgH);
System.out.println("平均体重:" + avgW);
/*如果平均身高>160 体重<50 就是美女 否则不是*/
if (avgH > 160 && avgW < 50) {
System.out.println("是美女");
} else {
System.out.println("不是美女");
}
}
}
阶段三
面向对象的三大特征是封装,继承,多态。
Java是一门面向对象编程语言,所以它也拥有了面向对象的三大特征。接下来我们进行封装下。
封装类
封装就是将属性私有化,提供公有的方法访问私有属性。
我们可以封装一个Girl
类。
其中属性有
private int height;
private int wight;
访问和获取数据的方法(get,set)
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
public int getWight() {
return wight;
}
public void setWight(int wight) {
this.wight = wight;
}
Girl类整体代码:
package test;
public class Girl {
private int height;
private int wight;
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
public int getWight() {
return wight;
}
public void setWight(int wight) {
this.wight = wight;
}
}
选出3个女生 得到身高和体重
我们改下这模块的代码,使用封装的类。
将之前定义的属性数组等注释掉,改成girllist
数组。
// ArrayList<Integer> heights = new ArrayList();
// ArrayList<Integer> wights = new ArrayList();
List<Girl> girllist =new ArrayList<>();
将阶段二中的for循环输入代码修改
for (int i = 0; i <= 2; i++) {
Girl girl =new Girl();
System.out.println("请输入第" + (i + 1) + "个女生的身高:");
int h = sc.nextInt();
// heights.add(sc.nextInt());
girl.setHeight(h);
System.out.println("请输入第" + (i + 1) + "个女生的体重:");
int w =sc.nextInt();
// wights.add(sc.nextInt());
girl.setWight(w);
girllist.add(girl);
}
计算女生的身高和 体重和
将增强for循环改成这样
// 增强for循环
// for (int i : heights) {
// sumH = sumH + i;
// }
// for (int i : wights) {
// sumW = sumW + i;
// }
for (Girl g : girllist) {
sumH = sumH + g.getHeight();
}
for (Girl g : girllist) {
sumW = sumW + g.getWight();
}
计算女生平均体重和平均身高
因为之前都用heights
,wights
这两个数组,现在改成girllist
// avgH = sumH / heights.size();
// avgW = sumW / wights.size();
avgH = sumH / girllist.size();
avgW = sumW / girllist.size();
判断 如果平均身高>160 体重<50 都是美女 否则不是
这边不用变
输出结果
现阶段总体代码
Meinv
类:
package test;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Meinv {
public static void main(String[] args) {
/*信息*/
// ArrayList<Integer> heights = new ArrayList();
// ArrayList<Integer> wights = new ArrayList();
List<Girl> girllist = new ArrayList<>();
// heights.add(180);
// heights.add(170);
// heights.add(160);
// wights.add(50);
// wights.add(45);
// wights.add(46);
Scanner sc = new Scanner(System.in);
// heights.add(sc.nextInt());
// heights.add(sc.nextInt());
// heights.add(sc.nextInt());
// wights.add(sc.nextInt());
// wights.add(sc.nextInt());
// wights.add(sc.nextInt());
for (int i = 0; i <= 2; i++) {
Girl girl = new Girl();
System.out.println("请输入第" + (i + 1) + "个女生的身高:");
int h = sc.nextInt();
// heights.add(sc.nextInt());
girl.setHeight(h);
System.out.println("请输入第" + (i + 1) + "个女生的体重:");
int w = sc.nextInt();
// wights.add(sc.nextInt());
girl.setWight(w);
girllist.add(girl);
}
/*身高和体重和*/
int sumW = 0;
int sumH = 0;
// for (int i = 0; i < heights.size(); i++) {
// sumH = sumH + heights.get(i);
// sumW += wights.get(i);
// }
// 增强for循环
// for (int i : heights) {
// sumH = sumH + i;
// }
// for (int i : wights) {
// sumW = sumW + i;
// }
for (Girl g : girllist) {
sumH = sumH + g.getHeight();
}
for (Girl g : girllist) {
sumW = sumW + g.getWight();
}
System.out.println("身高和:" + sumH);
System.out.println("体重和:" + sumW);
/*平均体重和平均身高*/
int avgH = 0;
int avgW = 0;
// avgH = sumH / heights.size();
// avgW = sumW / wights.size();
avgH = sumH / girllist.size();
avgW = sumW / girllist.size();
System.out.println("平均身高:" + avgH);
System.out.println("平均体重:" + avgW);
/*如果平均身高>160 体重<50 就是美女 否则不是*/
if (avgH > 160 && avgW < 50) {
System.out.println("是美女");
} else {
System.out.println("不是美女");
}
}
}
Girl
类:
package test;
public class Girl {
private int height;
private int wight;
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
public int getWight() {
return wight;
}
public void setWight(int wight) {
this.wight = wight;
}
}