import java.util.ArrayList
public class Student {
private String name
private int age
private String gender
public Student(String name, int age, String gender) {
this.name = name
this.age = age
this.gender = gender
}
public String getName() {
return name
}
public int getAge() {
return age
}
public String getGender() {
return gender
}
}
public class Classroom {
private ArrayList<Student>students
public Classroom() {
this.students = new ArrayList<Student>()
}
public void addStudent(Student student) {
students.add(student)
}
public ArrayList<Student>getStudents() {
return students
}
}
public class Main {
public static void main(String[] args) {
Classroom classroom = new Classroom()
// 添加 30 名学生的基本信息
classroom.addStudent(new Student("Tom", 18, "Male"))
classroom.addStudent(new Student("Alice", 19, "Female"))
// ...
// 此处省略 28 名学生的信息
// 获取所有学生的信息
ArrayList<Student>students = classroom.getStudents()
for (Student student : students) {
System.out.println("Name: " + student.getName())
System.out.println("Age: " + student.getAge())
System.out.println("Gender: " + student.getGender())
}
}
}
该代码定义了两个类:Student 类表示一个学生,包含了学生的姓名、年龄和性别等信息;Classroom 类表示一个班级,包含了一个学生的列表,并提供了添加学生和获取学生列表的方法。
在 Main 类的 main 方法中,我们首先实例化一个 Classroom 对象,然后依次添加 30 名学生的信息。最后,我们调用 getStudents 方法获取所
java是面向对象的编程语言,一切皆为对象。本题虽然基础,但是特别有代表性。在做这类java编程时也应该引入面向对象的思维。
一学生类属性的定义:
1.拥有三个属性,姓名,年龄和专业
姓名,是用文字进行表述的,所以可以使用String 字符串类型
年龄,大家都说18,19岁,一般很少听人说18.725岁,所以我们可以使用int整数类型来表示
专业,也是用文字进行表述的,所以还是用String字符串类型
2. 修饰符:java为了更好的封装,所以属性一般要用private进行修饰,
但是可以用setter对属性进行修改,也可以用getter对属性进行读取
二构造方法的设计
为了符合java开发的规范和习惯,需要添加一个无参数的构造器。
有参数的构造方法,需要对属性进行初始化设置
三方法的设置
除开属性的setter和getter方法外。
符合开发规范,还需要重写toString方法。用于返回字符串
所以我们显示(打印)信息时,也可以直接调用toString返回的字符串,然后打印
四 参考代码和注释
学生类
public class Student {//定义学生类private String name//属性 姓名
private int age//属性 年龄
private String major//属性 专业
public Student() {//无参数的构造法: 为了符合java开发规范和习惯,添加一个无参构造器
}
public Student(String name, int age, String major) {//有参的构造方法,初始化属性
this.name = name
this.age = age
this.major = major
}
public void ShowInfo(){//显示信息的方法
System.out.println(this)//打印时,自动调用toString方法,把该实例打印出来
}
public String toString() {//重写父类的toString方法,也是符合java规范的
return "【学生】\t姓名:"+name+"\t年龄:"+age+"\t专业:"+major
}
//下面是属性的get和set方法,getter用于获取属性的值,setter用于设置或修改属性的值
public String getName() {
return name
}
public void setName(String name) {
this.name = name
}
public int getAge() {
return age
}
public void setAge(int age) {
this.age = age
}
public String getMajor() {
return major
}
public void setMajor(String major) {
this.major = major
}
}
测试类
public class Test {public static void main(String[] args) {
Student s1 = new Student("张三", 19, "汉语语言文学")//调用有参数的构造器,创建学生实例
s1.ShowInfo()//显示信息
Student s2 = new Student()//调用无参数的构造器,创建学生实例
s2.setName("李四")//设置属性的值
s2.setAge(20)
s2.setMajor("计算机科学与技术")
s2.ShowInfo()
}
}
测试结果
【学生】 姓名:张三 年龄:19 专业:汉语语言文学【学生】 姓名:李四 年龄:20 专业:计算机科学与技术
五总结
通过这种基础编程,主要训练我们面向对象的思维,以及养成良好的编程习惯。
这里有一个类实现学生学号,数学,语文,英语成绩录入
并且计算平均成绩,按照平均成绩高低输出信息
你可以改改!
//实现简单的学生信息输入输出和初步的成绩排序
public class Student {
private int id//学号
private int mathScore//数学成绩
private int chinScore//语文成绩
private int foreScore//外语成绩
public Student() {
id = 0
mathScore = 0
chinScore = 0
foreScore = 0
}
public Student(int newId, int newMathScore, int newChinSvore,
int newForeScore) {
id = newId
mathScore = newMathScore
chinScore = newChinSvore
foreScore = newForeScore
}
public double getAverageScore() { //求平均成绩
double averageScore = ((double) mathScore + chinScore + foreScore) / 3
return averageScore
}
public void output(Student student) { //输出对象的内容
System.out.println(" " + student.id + " " + student.mathScore +
"" + student.chinScore + " "
+ student.foreScore + " " +
student.getAverageScore())
}
public int max(Student a[], int n) { //Student类对象数组的前n项中的成绩最大值的索引
int position = 0
for (int i = 1i <ni++) {
if (a[i].getAverageScore() >a[position].getAverageScore()) { //比较平均成绩
position = i
}
}
return position
}
public void selectSort(Student a[]) { //Student类对象数组的选择排序
for (int n = a.lengthn >1n--) {
int i = max(a, n)
Student temp = a[i]
a[i] = a[n - 1]
a[n - 1] = temp
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)