Java程序设计精编教程(5.14上机实践)
实验目的
本实验的目的是让学生掌握类变量与实例变量,以及类方法与实例方法的区别
实验要求
编写程序模拟两个村庄共同拥有一片森林。编写一个Village类,该类有一个静态的int型成员变量treeAmount用于模拟森林中树木的数量。在主类MainClass的main方法中创建两个村庄,一个村庄改变了treeAmount的值,另一个村庄查看treeAmount的值。
程序代码
Village.java
public class Village {
static int treeAmount; //模拟树林中树木的数量
int peopleNumber; //村庄的人数
String name; //村庄的名字
Village(String s){
name = s;
}
void treePlanting(int n) {
treeAmount = treeAmount + n;
System.out.println(name+"植树"+n+"棵");
}
void fellTree(int n) {
if (treeAmount-n >= 0) {
treeAmount = treeAmount - n;
System.out.println(name+"伐树"+n+"棵");
} else {
System.out.println("无树木可伐");
}
}
static int lookTreeAmount() {
return treeAmount;
}
void addPeopleNumber(int n) {
peopleNumber = peopleNumber + n;
System.out.println(name+"增加了"+n+"人");
}
}
MainClass.java
public class MainClass {
public static void main(String[] args) {
// TODO Auto-generated method stub
Village zhaoZhuang,majiaHeZi;
zhaoZhuang = new Village("赵庄");
majiaHeZi = new Village("马家河子");
zhaoZhuang.peopleNumber = 100;
majiaHeZi.peopleNumber = 150;
//用类名Village访问treeAmount,并赋值200
Village.treeAmount = 200;
int leftTree = Village.treeAmount;
System.out.println("森林中有"+leftTree+"棵树");
//zhaoZhuang调用treePlanting(int n),并传值50
zhaoZhuang.treePlanting(50);
//majiaHezi调用lookTreeAmount()方法得到树木的数量
leftTree = Village.lookTreeAmount();
System.out.println("森林中有"+leftTree+"棵树");
//majiaHeZi调用fellTree(int n)并向参数传值70
majiaHeZi.fellTree(70);
leftTree = Village.lookTreeAmount();
System.out.println("森林中有"+leftTree+"棵树");
System.out.println("赵庄的人口:"+zhaoZhuang.peopleNumber);
zhaoZhuang.addPeopleNumber(12);
System.out.println("赵庄的人口:"+zhaoZhuang.peopleNumber);
System.out.println("马家河子的人口:"+majiaHeZi.peopleNumber);
majiaHeZi.addPeopleNumber(10);
System.out.println("马家河子的人口:"+majiaHeZi.peopleNumber);
}
}
也可以合并到一起
public class MainClass {
public static void main(String[] args) {
// TODO Auto-generated method stub
Village zhaoZhuang,majiaHeZi;
zhaoZhuang = new Village("赵庄");
majiaHeZi = new Village("马家河子");
zhaoZhuang.peopleNumber = 100;
majiaHeZi.peopleNumber = 150;
//用类名Village访问treeAmount,并赋值200
Village.treeAmount = 200;
int leftTree = Village.treeAmount;
System.out.println("森林中有"+leftTree+"棵树");
//zhaoZhuang调用treePlanting(int n),并传值50
zhaoZhuang.treePlanting(50);
//majiaHezi调用lookTreeAmount()方法得到树木的数量
leftTree = Village.lookTreeAmount();
System.out.println("森林中有"+leftTree+"棵树");
//majiaHeZi调用fellTree(int n)并向参数传值70
majiaHeZi.fellTree(70);
leftTree = Village.lookTreeAmount();
System.out.println("森林中有"+leftTree+"棵树");
System.out.println("赵庄的人口:"+zhaoZhuang.peopleNumber);
zhaoZhuang.addPeopleNumber(12);
System.out.println("赵庄的人口:"+zhaoZhuang.peopleNumber);
System.out.println("马家河子的人口:"+majiaHeZi.peopleNumber);
majiaHeZi.addPeopleNumber(10);
System.out.println("马家河子的人口:"+majiaHeZi.peopleNumber);
}
}
class Village {
static int treeAmount; //模拟树林中树木的数量
int peopleNumber; //村庄的人数
String name; //村庄的名字
Village(String s){
name = s;
}
void treePlanting(int n) {
treeAmount = treeAmount + n;
System.out.println(name+"植树"+n+"棵");
}
void fellTree(int n) {
if (treeAmount-n >= 0) {
treeAmount = treeAmount - n;
System.out.println(name+"伐树"+n+"棵");
} else {
System.out.println("无树木可伐");
}
}
static int lookTreeAmount() {
return treeAmount;
}
void addPeopleNumber(int n) {
peopleNumber = peopleNumber + n;
System.out.println(name+"增加了"+n+"人");
}
}
运行结果
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?