JAVA中类与对象的实验例题
实验1 机动车:编写一个Java应用程序,该程序中有两个类:Vehicle(用于刻画机动车)和User(主类)。具体要求如下:
(1)Vehicle类有一个double类型的变量speed,用于刻画机动车的速度,一个int型变量power,用于刻画机动车的功率。类中定义了speedUp(ints)方法,体现机动车有加速功能;定义了speedDown()方法,体现机动车有减速功能;定义了setPower(int p)方法,用于设置机动车的功率;定getPower()方法,用于获取机动车的功率。
(2)在主类User的mainI()方法中用Vehicle类创建对象,并让该对象调用方法设置功率,演示加速和减速功能。
//定义Vehicle类
class Vehicle {
double speed; // 机车速度
int power;// 机车功率
// 机动车有加速度功能
public void speedUp(int a) {
speed += a;
System.out.println("机车加速了!");
System.out.println("机车目前速度是" + speed + "km/h");
}
// 机动车有减速功能
public void speedDown(int b) {
speed -= b;
System.out.println("机车减速了!");
System.out.println("机车目前速度是" + speed + "km/h");
}
// 获取机动车功率
public int getPower() {
return power;
}
// 设置机动车功率
public void setPower(int c) {
power = c;
}
double getspeed() {
return speed;
}
void setspeed(double s) {
speed = s;
}
}
public class User1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Vehicle V = new Vehicle();
V.setPower(60);
System.out.println("机车目前的功率是:" + V.getPower());
V.setspeed(100);
System.out.println("机车目前的速度是:" + V.getspeed() + "km/h");
V.speedDown(10);
V.speedUp(20);
}
}
实验2 家中的电视:编写一个Java应用程序,模拟家庭买一台电视,即家庭将电视作为自己的一个成员,即通过调用一个方法将某个电视的引用传递给自己的电视成员。具体要求如下。
(1)有三个源文件:TV.java、Familiy.java和MainClass.java,其中TV.java中的TV类负责创建“电视”对象,Family.java中的Family类负责创建“家庭”对象,MainClass.java是主类。
(2)在主类的main方法中首先使用TV类创建一个对象haierTV,然后使用Family类再创建一个对象 zhangSanFamily,并将先前TV类的实例haierTV的引用传递给zhangSanFamily对象的成员变量homeTV。
class TV {
String name1 = "长虹";
String name2 = "小米";
void sonsay() {
System.out.println("son说这个牌子太老了!");
}
void mumsay() {
System.out.println("mum说都别争了,就买小米!");
}
}
class Family {
String buytv;
TV sontv = new TV();
TV mumtv = new TV();
void say(String buy1, String n1) {
System.out.println(n1 + "说买" + buy1 + "牌的电视吧.");
if (buy1 == "长虹") {
sontv.sonsay();
}
if (buy1 == "小米") {
mumtv.mumsay();
}
}
}
public class MainClass {
public static void main(String[] args) {
TV tv = new TV();
Family p = new Family();
p.buytv = tv.name1;
p.say(p.buytv, "dad");
p.buytv = tv.name2;
p.say(p.buytv, "son");
}
}
实验3 共饮同井水:编写程序模拟两个村庄共用同一口井水。编写一个Village类,该类有一个静态的int型成员变量waterAmount,用于模拟井水的水量。在主类Land的main()方法中创建两个村庄,一个村庄改变了waterAmount的值,另一个村庄查看waterAmount的值。
```java
class Village {
static int waterAmount = 100;
static int dringwater;
String name;
int people;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPeople() {
return people;
}
public void setPeople(int people) {
this.people = people;
}
void dringking(int w) {
dringwater = w;
System.out.println("王庄的人喝了" + w + "升水.");
}
void seewater() {
System.out.println("赵庄的人发现还剩下" + (waterAmount -= dringwater) + "升水.");
}
}
public class Land {
public static void main(String[] args) {
// TODO Auto-generated method stub
Village v1 = new Village();
Village v2 = new Village();
v1.setName("赵庄");
v2.setName("王庄");
v1.setPeople(100);
v2.setPeople(50);
System.out.println(
v1.getName() + "共有" + v1.getPeople() + "人," + "" + v2.getName() + "共有" + v2.getPeople() + "人.");
System.out.println("现在井中共有" + Village.waterAmount + "升的水.");
v2.dringking(50);
v1.seewater();
}
}
重点!!导自己的jar包
实验4 求方程的根:按照实验要求使用package语句将方程的属性即计算根的方法封装在一个有包名的类中,包名是tom.jiafei,类的名字是SquareEquation。编写一个SunRise的主类,该主类使用import语句引入tom.jiafei包中的SquareEquation类。
SquareEquation类:
package tom.jiefei;
import java.lang.Math; //math头文件
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);
root1=(-b-Math.sqrt(disk))/(2*a);
System.out.println("方程的实根是"+root1+"和"+root2);
}
else {
System.out.println("方程没有实根!");
}
}
else {
System.out.println("它不是一元二次方程!");
}
}
}
经过上面三个图的操作,便可以生成自己要导入的jar包了,下面进行导入自己的jar包.
SunRise的主类:
package HomeWork;
import tom.jiefei.*;
public class SunRise {
public static void main(String[] args) {
// TODO Auto-generated method stub
SquareEquation A =new SquareEquation(1,2,1);
A.getRoots();
}
}