java学习笔记06-面向对象学习

java学习笔记06

记录下面向对象的学习

类的定义

public class Phone {
    // 成员变量
    String brand;
    int price;

    // 成员方法
    public void call() {
        System.out.println("打电话");
    }

    public void sendMsg() {
        System.out.println("发短信");
    }
}

对象的创建使用

创建对象

创建对象格式:
类名  对象名 = new  类名();
Phone p = new Phone();

使用对象

使用成员变量:
对象名.变量名
p.brand

使用成员方法:
对象名.方法名
p.call()

例如:

public class PhoneDemo {
    public static void main(String[] args) {
        Phone p = new Phone();

        System.out.println(p.brand);
        System.out.println(p.price);

        p.brand = "小米";
        p.price = 3999;

        System.out.println(p.brand);
        System.out.println(p.price);
        p.call();
    }
}

private和this

public class Student {
    private String name;
    private int age;

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getAge() {
        return age;
    }

    public void show() {
        System.out.println(this.name + "," + this.age);
    }
}

实例化类使用

public class StudentTest {
    public static void main(String[] args) {
        Student s1 = new Student();
        s1.setName("后羿");
        s1.setAge(100);
        s1.show();
    }
}

构造方法

构造方法是和类名相同的成员方法,构造方法支持重载
格式为:
修饰符 类名 () {}

public class Student {
    private String name;
    private int age;

    public Student () {

    }

    public Student (String name, int age) {
        this.name = name;
        this.age = age;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getAge() {
        return age;
    }

    public void show() {
        System.out.println(this.name + "," + this.age);
    }
}

实例化类

public class StudentTest {
    public static void main(String[] args) {
        Student s1 = new Student();
        s1.setName("后羿");
        s1.setAge(100);
        s1.show();

        Student s2 = new Student("张良", 40);
        s2.show();
    }
}

标准类的制作

1、成员变量
  使用private修饰
2、构造方法
  提供一个无参构造方法
  提供有个带多个参数的构造方法
3、成员方法
  提供每一个成员变量对应的setXxx()/getXxx()
  提供一个显示对象信息的show()
4、创建对象并为其成员变量赋值的两种方式
  无参构造方法创建对象后使用setXxx()赋值
  使用带参构造方法直接创建带有属性值的对象
  
  IDEA 类方法定义时快捷键ALT+INSERT

面向对象练习题

实现一个学生管理系统

Student.java

package study.com;

public class Student {
    private String sid;
    private String name;
    private String age;
    private String location;

    public Student () {

    }

    public Student (String sid, String name, String age, String location) {
        this.sid = sid;
        this.name = name;
        this.age = age;
        this.location = location;
    }

    public void setSid(String sid) {
        this.sid = sid;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public void setLocation(String location) {
        this.location = location;
    }

    public String getSid() {
        return sid;
    }

    public String getName() {
        return name;
    }

    public String getAge() {
        return age;
    }

    public String getLocation() {
        return location;
    }

    public void show() {
        System.out.println("学号:" + this.sid + "\t" + "姓名:" + this.name + "\t" + "年龄:" + this.age + "\t" + "地址:" + this.location);
    }
}

StudentManage.java

package study.com;

import java.util.ArrayList;
import java.util.Scanner;
import java.util.TreeMap;

public class StudentManage {
    public static void main(String[] args) {
        ArrayList<Student> stuList = new ArrayList<Student>();
        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 choose = sc.nextLine();
            switch (choose) {
                case "1":
                    addStudent(stuList);
                    break;
                case "2":
                    delStudent(stuList);
                    break;
                case "3":
                    editStudent(stuList);
                    break;
                case "4":
                    findAllStudent(stuList);
                    break;
                case "5":
                    System.exit(0);
                    break;
                default:
                    System.out.println("错误的指令,请重新输入!");
            }

        }

    }

    public static void addStudent(ArrayList<Student> arrL) {
        Scanner sc = new Scanner(System.in);
        String sid;

        while (true) {
            System.out.println("请输入学生学号:");
            sid = sc.nextLine();
            if (sidIsUsed(arrL, sid)) {
                System.out.println("学号已存在,不可重复添加,请重新输入");
                continue;
            } else {
                break;
            }
        }

        System.out.println("请输入学生姓名:");
        String name = sc.nextLine();

        System.out.println("请输入学生年龄:");
        String age = sc.nextLine();

        System.out.println("请输入学生地址:");
        String location = sc.nextLine();

        Student student = new Student(sid, name, age, location);
        arrL.add(student);
        System.out.println("添加学生成功!");

    }

    public static void delStudent(ArrayList<Student> arrL) {
        System.out.println("请输入要删除的学生的学号: ");
        Scanner sc = new Scanner(System.in);
        String sid = sc.nextLine();
        boolean deleteStatus = false;
        for (int i=0; i<arrL.size(); i++) {
            Student stu = arrL.get(i);
            if (stu.getSid().equals(sid)) {
                arrL.remove(i);
                deleteStatus = true;
                break;
            }
        }
        if (!deleteStatus) {
            System.out.println("输入学号的学生不存在");
        } else {
            System.out.println("删除成功");
        }
    }

    public static void findAllStudent(ArrayList<Student> arrL) {
        int ln = arrL.size();
        if (ln == 0) {
            System.out.println("无信息,请添加信息后再查看");
            return;
        }
        for (int i=0; i<ln; i++) {
            Student stu = arrL.get(i);
            stu.show();
        }
    }

    public static void editStudent(ArrayList<Student> arrL) {
        System.out.println("请输入要编辑的学生的学号: ");
        Scanner sc = new Scanner(System.in);
        String sid = sc.nextLine();
        boolean editStatus = false;
        Student tmp = null;
        for (int i=0; i<arrL.size(); i++) {
            Student stu = arrL.get(i);
            if (stu.getSid().equals(sid)) {
                editStatus = true;
                tmp = stu;
                break;
            }
        }
        if (!editStatus) {
            System.out.println("输入学号的学生不存在");
        } else {
            System.out.println("请输入学生姓名:");
            String name = sc.nextLine();

            System.out.println("请输入学生年龄:");
            String age = sc.nextLine();

            System.out.println("请输入学生地址:");
            String location = sc.nextLine();
            System.out.println("删除成功");

            tmp.setName(name);
            tmp.setAge(age);
            tmp.setLocation(location);
            System.out.println("修改学生信息成功");

        }
    }

    public static boolean sidIsUsed(ArrayList<Student> arrL, String sid) {
        boolean existFlag = false;
        for (int i=0; i<arrL.size(); i++) {
            Student stu = arrL.get(i);
            if (stu.getSid().equals(sid)) {
                existFlag = true;
                break;
            }
        }
        return existFlag;
    }
}

posted @ 2022-09-08 21:05  村口王铁匠  阅读(30)  评论(0)    收藏  举报