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

java学习笔记06#

记录下面向对象的学习

类的定义#

Copy
public class Phone { // 成员变量 String brand; int price; // 成员方法 public void call() { System.out.println("打电话"); } public void sendMsg() { System.out.println("发短信"); } }

对象的创建使用#

创建对象

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

使用对象

Copy
使用成员变量: 对象名.变量名 p.brand 使用成员方法: 对象名.方法名 p.call()

例如:

Copy
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#

Copy
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); } }

实例化类使用

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

构造方法#

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

Copy
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); } }

实例化类

Copy
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(); } }

标准类的制作#

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

面向对象练习题#

实现一个学生管理系统

Student.java

Copy
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

Copy
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 @   村口王铁匠  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示

目录

目录

×