(1)创建一个 Person 类,该类中有一个类成员变量 country、一个实例变量 name 和另一
个实例变量 age。
(2)country 表示城市,name 表示姓名,age 表示年龄。
(3)创建三个 Person 类,并分别给属性赋值。
(4)通过三个 Person 类分别获取姓名、年龄和城市信息
实现思路
(1)创建人类(Person )。
(2)定义 int 实例变量 age,String 实例变量 name,String 类变量 country。
(3)创建三个 Person 类,给三个 Person 赋姓名和年龄,再通过类名给成员变量赋值城市。
(4)创建一个测试类 PersonTest,输出属性信息
public class Person {
static String country;
String name;
int age;
}
public class Test {
public static void main(String[] args) {
Person.country="云南";
Person p1 = new Person();
p1.name = "王文";
p1.age = 18;
Person p2 = new Person();
p2.name = "小二";
p2.age = 19;
Person p3 = new Person();
p3.name = "酒馆";
p3.age = 20;
System.out.println("地区:"+Person.country+"\t姓名:"+p1.name+"\t年龄:"+p1.age);
System.out.println("地区:"+Person.country+"\t姓名:"+p2.name+"\t年龄:"+p2.age);
System.out.println("地区:"+Person.country+"\t姓名:"+p3.name+"\t年龄:"+p3.age);
}
}
需求说明
(1)创建一个 Dota 游戏中的兵营类,该类中有一个类成员变量 count、一个实例变量 name
和另一个实例变量 selfCount。
(2)count 表示的是兵营已经创建士兵的总数;name 表示的是每个兵营的名称;selfCount
表示每个兵营已经创建的士兵数量。
(3)创建 3 个兵营,通过控制台为每个兵营定义兵营名称,并指定该兵营需要创建的士兵
人数。
(4)在主方法中输出当前兵营中的总人数。
程序运行效果如图所示
实现思路
(1)创建兵营类(Barracks )。
(2)定义 int 类型变量 count,String 类型变量 name,int 类型变量 selfCount。
(3)在类中定义 operator 方法,该方法通过 for 循环创建 3 个 Barracks 对象,将从控制台
接收到兵营名称和兵营已创建人数,分别保存至局部变量 name 和局部变量 selfcount 中,将
这些局部变量保存的值分别赋值给实例变量 name 和实例变量 selfCount,最后输出兵营目前
一共创建的士兵数量。
(4)创建一个测试类 BarracksTest,在该类的 main 方法中调用 Barracks 对象的 operator 方
法。
import java.util.Scanner;
public class Barracks {
static int count;//士兵的总数
String name;//士兵名字
int selfCount;//士兵数量
public void operator() {
Scanner sc = new Scanner(System.in);
for(int i = 0; i <3; i++) {
System.out.println("请输入第"+(i+1)+"个兵营名称:");
String name = sc.next();
System.out.println("请输入第"+(i+1)+"个军营的士兵数量:");
int selfCount = sc.nextInt();
this.count += selfCount;
}
System.out.println("士兵总数:"+count);
}
}
public class BarracksTest {
public static void main(String[] args) {
Barracks b = new Barracks();
b.operator();
}
}
完成对 Barrack 类进行封装,要求将 Barracks 类中的所有属性设置为私有访问权限。定义
name 属性和 selfCount 属性的 setter 方法和 getter 方法。在 setName()方法中对用户输
入兵营的名称进行判断,兵营的名称长度在 4 ~ 8 位之间,在 setName()方法中,对输入的
兵营创建的士兵人数进行判断。每次输入的士兵数量在 100 ~ 500 之间。
程序运行结果如图所示
实现思路
(1)将类中所有的属性均定义设置为私有访问权限。
(2)将已经创建的士兵总数 count 属性,定义为静态属性,在类中定义保存兵营对象的兵
营数组类变量 bksarray,该数据大小为 3。
(3)在 setName 方法中,对用户输入的兵营名称的长度进行校验。如果输入的名称合法,
将继续进行下一步的操作,如果输入信息有误,则系统给出友好提示信息,要求用户重新
输入信息。
(4)在 setSelfCount 方法中,完成对用户输入的当前兵营已创建士兵的数量进行合理的
校验。如果输入的信息不符合系统要求,则系统给出友好提示信息,要求用户重新输入信
import java.util.Scanner;
public class Barracks {
private String name;//兵营名字
private int selfCount;//士兵数量
public void SetName(String name) {
if (name.length()<8&&name.length()>4) {
this.name = name;
}else {
System.out.println("兵营名称的长度在4~8位之间");
}
}
public void setSelfCount(int selfCount) {
if (selfCount>100&&selfCount<500) {
this.selfCount = selfCount;
}else {
System.out.println("兵营士兵的人数在100~500之间");
}
}
public String getName() {
return this.name;
}
public int getselfCount() {
return selfCount;
}
}
import java.util.*;
public class TEXT {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Barracks b = new Barracks();
System.out.println("请输入兵营名称:");
b.SetName(sc.next());
System.out.println("请输入兵营人数:");
b.setSelfCount(sc.nextInt());
System.out.println("兵营名称:"+b.getName());
System.out.println("兵营人数:"+b.getselfCount());
}
}
创建 Book 对象,深入了解 Java 程序启动 class 文件被读取时,类加载和静态代码块的执行
过程,以及 static 方法调用执行顺序。
实现思路
(1)注释掉主函数中 Book book = new Book();观察类启动加载时 static 代码块的启动方
式。
(2)去掉主函数注释中 Book book = new Book();观察类启动加载时 static 代码块的启动
方式和实例化对象时的启动顺序。
public class Book {
public static int booksum = 0;//静态变量
static {
System.out.println("this is static block");
}
public Book() {
System.out.println("this is Book's contructor~");
booksum +=1;
}
public static void print() {
System.out.println("this is static methiod~");
}
public static void main(String[] args) {
Book book = new Book();
}
}