java 上机实践四 类与对象

来源:互联网 发布:前端程序员是干什么的 编辑:程序博客网 时间:2024/04/19 10:45

实验一,机动车:

实验目的:理解类和对象的属性和公能

主类

public class Main{public static void main(String args[]){Vehicle car1=new Vehicle();Vehicle car2=new Vehicle();car1.setPower(128);car2.setPower(76);System.out.println("car1的功率为  " + car1.getPower());System.out.println("car2的功率为  " + car2.getPower());car1.speedUp(10);car2.speedUp(80);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());}}


Vehicle类

public class Vehicle {double speed;int power;void speedUp(int s){speed+=s;if(speed>200){System.out.println("请减速慢行");speed=200;}}void speedDown(int s){speed-=s;}void setPower(int p){power=p;}int getPower(){return power;}double getSpeed(){return speed;}}


实验二,家中的电视:

实验目的:掌握对象的组合以及数据的传递


TV . java

public class TV {int channel;void setChannel(int s){if(s<1)System.out.println("频道数错误");elsechannel=s;}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;default:System.out.println("不能收看");}}}

Family . java

public class Family {TV homeTV;void buyTV(TV tv){homeTV=tv;}void remoteControl(int m){homeTV.setChannel(m);}void seeTV(){homeTV.showProgram();}}

主类:

public class Main{public static void main(String args[]){TV haierTV=new TV();haierTV.setChannel(2);System.out.println("haierTV的频道为 "+ haierTV.getChannel());Family zhangSanFamily=new Family();zhangSanFamily.buyTV(haierTV);System.out.println("张三开始看电视");zhangSanFamily.seeTV();int m=1;System.out.println("张三将电视节目更换到"+ m+ "频道");zhangSanFamily.remoteControl(m);System.out.println("haier电视的节目"+haierTV.getChannel());System.out.println("张三在看电视的节目");zhangSanFamily.seeTV();}}


实验三,饮用水:

实验目的:掌握类变量和实例变量,类方法和实例方法的区别


实例变量

  1. 实例变量声明在一个类中,但在方法、构造方法和语句块之外;
  2. 当一个对象被实例化之后,每个实例变量的值就跟着确定;
  3. 实例变量在对象创建的时候创建,在对象被销毁的时候销毁;
  4. 实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息;
  5. 实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见;
  6. 实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;
  7. 实例变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObejectReference.VariableName。

类变量(静态变量)

  1. 类变量也称为静态变量,在类中以static关键字声明,但必须在方法构造方法和语句块之外。
  2. 无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。
  3. 静态变量除了被声明为常量外很少使用。常量是指声明为public/private,final和static类型的变量。常量初始化后不可改变。
  4. 静态变量储存在静态存储区。经常被声明为常量,很少单独使用static声明变量。
  5. 静态变量在程序开始时创建,在程序结束时销毁。
  6. 与实例变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为public类型。
  7. 默认值和实例变量相似。数值型变量默认值是0,布尔型默认值是false,引用类型默认值是null。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化。
  8. 静态变量可以通过:ClassName.VariableName的方式访问。
  9. 类变量被声明为public static final类型时,类变量名称必须使用大写字母。如果静态变量不是public和final类型,其命名方式与实例变量以及局部变量的命名方式一致。

Village。java

public class Village {static int waterAmount;int peopleNumber;String name;Village(String s){name=s;}static void setWaterAmount(int s){waterAmount=s;}void drinkWater(int s){if(waterAmount-s>0){waterAmount-=s;System.out.println(name + " 喝了 "+s+" L 水");}else{System.out.println(name + " 喝了 "+waterAmount+" L 水");waterAmount=0;}}static int loolWaterAmout(){return waterAmount;}void setPeople(int n){peopleNumber=n;}int getPeople(){return peopleNumber; }}

主类:

public class Main{public static void main(String args[]){Village.setWaterAmount(200);int leftWater=Village.loolWaterAmout();System.out.println("井里面还有  "+leftWater+" L 水");Village zhaoZhuang=new Village("赵庄");Village maJiaHeZhi=new Village("马家河子");zhaoZhuang.setPeople(80);maJiaHeZhi.setPeople(120);zhaoZhuang.drinkWater(50);leftWater=maJiaHeZhi.loolWaterAmout();String name=maJiaHeZhi.name;System.out.println(name+" 发现井里面剩下 "+leftWater+" L 水");zhaoZhuang.drinkWater(100);leftWater=maJiaHeZhi.loolWaterAmout();name=zhaoZhuang.name;System.out.println(name+" 发现井里面剩下 "+leftWater+" L 水");System.out.println("赵庄的人口 "+zhaoZhuang.getPeople());System.out.println("马家河子的人口 "+maJiaHeZhi.getPeople());}}


0 0
原创粉丝点击