Java类与对象(机动车)(家中电视)(共饮同井水)(求方程的根)
作者:互联网
Java程序以类为“基本单位”,即一个Java程序就是由若干个类所构成的。一个Java程序可以将它使用的各个类分别存放在不同的源文件中,也可以将它使用的类存放在一个源文件中。
机动车
实验要求
编写一个Java应用程序,该程序中有两个类:Vehicle(用于刻画机动车)和User(主类)。具体要求如下:
- Vehicle类有一个double类型的变量speed,用于刻画机动车的速度,一个int型变量power,用于刻画机动车的功率。类中定义了speedUp(int s)的方法,体现机动车有加速功能;定义了speedDown()方法,体现了机动车有减速功能;定义了setPower()方法,用于设置机动车的功率;定义了getPower()方法,用于设置机动车的功率。
Vehicle.java:
public class Vehicle { //声明double型变量speed,刻画速度 double speed; //声明int型变量power,刻画功率 int power; void speedUp(int s) { //将参数s的值与成员变量speed的和赋值给成员变量speed speed += s; } void speedDown(int d) { //将成员变量speed与参数d的差赋值给成员变量speed speed -= d; } void setPower(int p) { //将参数p的值赋值给成员变量power power = p; } int getPower() { //返回成员变量power的值 return power; } double getSpeed() { return speed; }}
User.java
public class User { public static void main(String[] args) { Vehicle car1,car2; //使用new运算符和默认的构造方法创建对象car1 car1 = new Vehicle(); //使用new运算符和默认的构造方法创建对象car2 car2 = new Vehicle(); car1.setPower(128); car2.setPower(76); System.out.println("car1的功率是:"+car1.getPower()); System.out.println("car2的功率是:"+car2.getPower()); //car1调用speedUp()方法将自己的speed的值增加80 car1.speedUp(80); //car2调用speedUp()方法将自己的speed的值增加80 car2.speedUp(100); System.out.println("car1目前速度:"+car1.getSpeed()); System.out.println("car2目前速度:"+car2.getSpeed()); car1.speedDown(10); car2.speedDown(20); System.out.println("car1目前的速度:"+car1.getSpeed()); System.out.println("car2目前的速度:"+car2.getSpeed()); }}
家中电视
实验要求
编写一个Java应用程序,模拟家庭买一台电视,即家庭将电视作为自己的一个成员,即通过调用一个方法将某个电视的引用传递给自己的电视成员。具体要求如下:
- 有三个源文件:TV.java、Family.java和MainClass.java,其中TV.java中的TV类负责创建“电视”对象,Family.java中的Family类负责创建“家庭”对象,MainClass.java是主类。
- 在主类的main()方法中首先使用TV类创建一个对象haierTV,然后使用Family类再创建一个对象zhangSanFamily,并将先前TV类的实例haierTV的引用传递给zhangSanFamily对象的成员homeTV
TV.java
public class TV { int channel; //电视频道 void setChannel(int m) { if(m>1) { channel = m; } } int getChannel() { return channel; } void showProgram() { switch(channel) { case 1: System.out.println("综合频道"); break; case 2: System.out.println("经济频道"); break; case 3: System.out.println("文艺频道"); break; case 4: System.out.println("国际频道"); break; case 5: System.out.println("体育频道"); break; default: System.out.println("不能收看"+channel+"频道"); } }}
Family.java
public class Family { TV homeTV; void buyTV(TV tv) { //将参数tv赋值给homeTV homeTV = tv; } void remoteControl(int m) { homeTV.setChannel(m); } void seeTV() { homeTV.showProgram();//homeTV调用showProgram()方法 }}
MainClass.java
public class MainClass { public static void main(String[] args) { TV haierTV = new TV(); //haierTV调用setChannel(int m),并向参数m传递5 haierTV.setChannel(5); System.out.println("haier的频道是"+haierTV.getChannel()); Family zhangSanFamily = new Family(); //zhangSanFamily调用void buyTV(TV tv)方法,并将haierTV传递给参数TV zhangSanFamily.buyTV(haierTV); System.out.println("zhangSanFamily开始看电视节目"); zhangSanFamily.seeTV(); int m=2; System.out.println("zhangSanFamily将电视更换到"+m+"频道"); zhangSanFamily.remoteControl(m); System.out.println("haier的频道是"+haierTV.getChannel()); System.out.println("zhangSanFamily在看电视节目"); zhangSanFamily.seeTV(); }}
共饮同井水
Village.java
public class Village { static int waterAmount; int peopleNumber; String name; Village(String s){ name = s; } static void setWaterAmount(int m){ if(m > 0){ waterAmount = m; } } void drinkWater(int n){ if(waterAmount-n >= 0) { waterAmount -= n; System.out.println(name+"喝了"+n+"升水"); }else { waterAmount = 0; } } static int lookWaterAmount() { return waterAmount; } void setPeopleNumber(int n) { peopleNumber = n; } int getPeopleNumber() { return peopleNumber; }}
Land.java
public class Land { public static void main(String[] args) { Village.setWaterAmount(200); int leftWater = Village.waterAmount; System.out.println("水井中有"+leftWater+"升水"); Village zhaoZhuang,maJiaHeZhi; zhaoZhuang = new Village("赵庄"); maJiaHeZhi = new Village("马家河子"); zhaoZhuang.setPeopleNumber(80); maJiaHeZhi.setPeopleNumber(120); zhaoZhuang.drinkWater(50); leftWater = maJiaHeZhi.lookWaterAmount(); String name = maJiaHeZhi.name; System.out.println(name+"发现水井中有 "+leftWater+" 升水"); maJiaHeZhi.drinkWater(100); leftWater = zhaoZhuang.lookWaterAmount(); name = zhaoZhuang.name; System.out.println(name+"发现水井中有 "+leftWater+"升水"); int peopleNumber = zhaoZhuang.getPeopleNumber(); System.out.println("赵庄的人口:"+peopleNumber); peopleNumber = maJiaHeZhi.getPeopleNumber(); System.out.println("马家河子的人口:"+peopleNumber); }}
求方程的根
按照实验要求使用package语句将方程的属性即计算根的方法封装在一个有包名的类中,包名是tom.jiafei,类的名字是SquareEquation。编写一个SunRise的主类,该主类使用import语句引入tom.jiafei包中的SquareEquation类。
SquareEquation.java
package tom.jiafei;public class SquareEquation { double a,b,c; double root1,root2; boolean boo; public SquareEquation(double a,double b,double c) { this.a = a; this.b = b; this.c = c; if(a != 0) { boo = true; }else { boo = false; } } public void getRoots() { if(boo) { System.out.println("是一元一次方程"); double disk = b*b - 4*a*c; if(disk >= 0) { root1 = (-b+Math.sqrt(disk))/(2*a); root2 = (-b-Math.sqrt(disk))/(2*a); System.out.printf("方程的根:%f,%f\n",root1,root2); }else { System.out.println("方程没有实根"); } } else { System.out.println("不是一元二次方程"); } } public void setCofficient(double a,double b,double c) { this.a = a; this.b = b; this.c = c; if(a != 0) boo = true; else boo = false; }}
SunRise.java
import tom.jiafei.*;public class SunRise { public static void main(String[] args) { SquareEquation equation = new SquareEquation(4, 5, 1); equation.getRoots(); equation.setCofficient(1, 1, 1); equation.getRoots(); }}
标签:Java,int,井水,void,car1,System,println,饮同,out 来源: https://blog.51cto.com/u_15249901/2848380