本周重点学习了集合以及继承的知识,并能够利用知识做了一个学生管理系统。
学生管理系统的代码如下:
//导包以及主方法的设计
mport jdk.swing.interop.SwingInterOpUtils;
import java.util.Scanner;
import java.util.ArrayList;
public class student_manage {
//用输出语句完成主页面的编写
//用Scanner实现键盘录入数据
//用switch语句完成操作的选择
//用循环完成再次回到主页面
public static void main(String[] args) {
//创建集合对象,用于存储学生数据
ArrayList<student> array = new ArrayList<student>();
int a=1;
while(true){
System.out.println("--------欢迎来到学生管理系统--------");
System.out.println("1 添加学生");
System.out.println("2 删除学生");
System.out.println("3 修改学生");
System.out.println("4 查看所有学生");
System.out.println("5 退出");
System.out.println("请输入你的选择: ");
Scanner sc =new Scanner(System.in);
String line=sc.nextLine();
switch(line){
case"1":
//System.out.println("添加学生");
addStudent(array);
break;
case"2":
//System.out.println("删除学生");
deleteStudent(array);
break;
case"3":
//System.out.println("修改学生");
updateStudent(array);
break;
case"4":
//System.out.println("查看所有学生");
findAllStudent(array);
break;
case"5":
System.out.println("谢谢使用");
System.exit(0);
}
}
}
//定义一个方法,用于添加学生信息
public static void addStudent(ArrayList<student> array) {
Scanner sc = new Scanner(System.in);
String sid;
//键盘录入学生对象所需要的数据,显示提示信息,提示要输入何种信息
while (true) {
System.out.println("请输入学生学号");
sid = sc.nextLine();
boolean flag = isUsed(array, sid);
if (flag) {
System.out.println("你输入的学号已经被使用,请重新输入");
}else break;
}
System.out.println("请输入学生姓名");
String name=sc.nextLine();
System.out.println("请输入学生年龄");
String age=sc.nextLine();
System.out.println("请输入学生居住地");
String address=sc.nextLine();
//创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
student s=new student();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
//将学生对象添加到集合中
array.add(s);
//给出添加成功的提示
System.out.println("添加学生成功");
}
//定义一个方法,判断学号是否被使用
public static boolean isUsed (ArrayList<student> array,String sid){
boolean flag =false;
for(int i=0;i<array.size();i++){
student s = array.get(i);
if(s.getSid().equals(sid)){
flag = true;
break;
}
}
return flag;
}
//定义一个方法,用于查看学生信息
public static void findAllStudent(ArrayList<student> array){
if(array.size()==0){
System.out.println("无信息,请先添加信息再查询");
}else {
System.out.println("学号\t\t姓名\t年龄\t居住地");
for(int i=0;i<array.size();i++){
student s = array.get(i);
System.out.println(s.getSid() + "\t" + s.getName() + "\t" +s.getAge()+"岁\t"+s.getAddress());
}}
}
//定义一个方法,用于删除学生信息
public static void deleteStudent (ArrayList<student>array){
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要删除的学生的学号:");
String sid = sc.nextLine();int sb=0;
for( int i=0;i<array.size();i++){
student s = array.get(i);
if(s.getSid().equals(sid)){
array.remove(i);sb=1;
break;
}
}
if(sb==1)
System.out.println("删除学生成功");
else if(sb==0)System.out.println("该信息不存在,请重新输入:");
}
//定义一个方法,由于修改学生信息
public static void updateStudent(ArrayList<student> array){
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要修改的学生的学号");
String sid = sc.nextLine();
System.out.println("请输入学生新姓名:");
String name = sc.nextLine();
System.out.println("请输入学生新年龄:");
String age = sc.nextLine();
System.out.println("请输入学生新居住地:");
String address = sc.nextLine();
student s = new student();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);int aa=0;
for(int i=0;i<array.size();i++){
student sb=array.get(i);
if(sb.getSid().equals(sid)){
array.set(i,s);
aa=1;break;
}
}
if(aa==1){
System.out.println("修改学生成功");
} else if(aa==0){
System.out.println("输入有误,请重新输入");
}
}
}
//下面是学生类的具体实现方法以及数据成员
public class student {
//alt +insert 根据自己的需要进行选择
private String sid;
private String name;
private String age;
private String address;
private String sb;
public student() {
}
public student(String sid, String name, String age, String address) {
this.sid = sid;
this.name = name;
this.age = age;
this.address = address;
}
public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
一、集合基础
集合的特点:提供一种存储空间可变的存储模型,存储的数据容量可变,类似于C的vector。
这里拿ArrayList来举例:
ArrayList< E > E代表的是数据的类型。可调整大小的数组实现,<E>是泛型。
ArrayLIst 构造方法和添加方法
方法名 public ArrayList ( );创建一个空的集合对象
public Boolean add (E e)将指定的元素追加到此集合的末尾
public void add (int index , E element )//在集合中指定位置插入指定的元素
导包 import java .util .ArrayList
ArrayList 集合常用方法
public Boolean remove < object 0)删除指定的元素,返回删除是否成功
public E remove (int index )//删除指定索引处的元素,返回被删除的元素
public E set (int index ,E element)//修改指定索引处的元素,返回被修改的元素
public E get(int index) 返回指定索引处的元素
public int size ( );返回集合的元素个数
二、继承
继承是面向对象三大特征之一,可以使得子类具有父类的属性的方法,还可以在子类中重新定义,追加属性和方法
2.继承的格式
格式:pubilc class 子类名 extends 父类名 { }
范例:public class zi extends Fu { }
Fu是父类,也被称为基类,超类
zi是子类,也被称为派生类
3.继承中子类的特点:子类可以有父类的内容,子类可以有自己特有的内容。
4.继承的好处:
1)提高了代码的复用性
2)提高了代码的维护性
继承的弊端
1)继承让类与类之间产生的关系,类的耦合性增强了。当父类发生变化时,子类的实现也不得不跟着发生变化,削弱了子类的独立性。