zoukankan      html  css  js  c++  java
  • 自学JAVA-4:方法、对象、类、属性


    类:具有相同属性和行为的一组对象和行为。

    对象:对象是存在的具体实体,具有明确定义的特征和行为。

    方法:就是对象的具体行为。

    属性:就是对象的具体特征。

    类是对象的抽象,对象是类的实例。

    简单举例:
    类:Person
    属性: eyes mouth
    方法:fuck

    Person类就表示一个对象或者是一类对象 这里就是指“人”。
    人都有眼睛、嘴巴,这些就是人的属性。
    人能够做什么? 答: fuck fuck()方法就是人可以做什么。
    就是这个对象的动作,方法中就是这个动作会产生什么样的效果。

    方法的作用:

    1、分而治之。将复杂的功能作分解,每个部分都实现简单的业务。达到功能明确,逻辑清晰的效果。
    2、重用。方法定义了之后,通过多次调用达到代码重复使用的效果。

    方法重载:在同一个类中,有两个以上的方法,方法名相同,参数列表不同(参数类型、参数个数、参数顺序),调用时会根据方法的参数,来决定执行哪个方法。

      1 import javax.swing.JOptionPane;
      2 
      3 public class StudentSystem {
      4     public static void main(String[] args) {
      5         // 学生管理系统:要求实现登陆,学生信息的添加、显示,删除,修改,查询,排序,退出功能。
      6         JOptionPane.showMessageDialog(null, "欢迎光临学生管理系统");
      7         if (StudentMessage.login() == false) {
      8             JOptionPane.showMessageDialog(null, "非法用戶");
      9             System.exit(0);
     10         }
     11         while (true) {
     12             String item = JOptionPane.showInputDialog(null, "1、添加
    2、显示
    3、删除
    4、查找
    5、修改
    6、排序
    7、退出");
     13             switch (item) {
     14             case "1":
     15                 StudentMessage.add();
     16                 break;
     17             case "2":
     18                 StudentMessage.show();
     19                 break;
     20             case "3":
     21                 StudentMessage.delete();
     22                 break;
     23             case "4":
     24                 StudentMessage.find();
     25                 break;
     26             case "5":
     27                 StudentMessage.update();
     28                 break;
     29             case "6":
     30                 StudentMessage.rank();
     31                 break;
     32             case "7":
     33                 System.exit(0);
     34                 break;
     35             }
     36         }
     37     }
     38 
     39 }
     40 
     41 class StudentMessage {
     42     // 学号
     43     public int code;
     44     // 姓名
     45     public String name;
     46     // 成绩
     47     public int grade;
     48 
     49     // 学生信息数组
     50     public static StudentMessage[] message = new StudentMessage[200];
     51 
     52     // 统计用户输入的人数
     53     public static int count = 0;
     54 
     55     // 登陆
     56     public static boolean login() {
     57         for (int i = 0; i < 3; i++) {
     58             String userName = JOptionPane.showInputDialog(null, "请输入用户名");
     59             String pwd = JOptionPane.showInputDialog(null, "请输入密码    ");
     60             if (userName.equals("java") && pwd.equals("12345")) {
     61                 return true;
     62             } else {
     63                 JOptionPane.showMessageDialog(null, "用户名或密码错误");
     64             }
     65         }
     66         return false;
     67     }
     68 
     69     // 添加
     70     public static void add() {
     71         StudentMessage x = new StudentMessage();
     72         x.code = Integer.parseInt(JOptionPane.showInputDialog(null, "请输入学号"));
     73         x.name = JOptionPane.showInputDialog(null, "请输入姓名");
     74         x.grade = Integer.parseInt(JOptionPane.showInputDialog(null, "请输入成绩"));
     75         message[count] = x;
     76         count++;
     77     }
     78 
     79     // 显示
     80     public static void show() {
     81         String s = "学号     姓名    成绩
    ";
     82         for (int i = 0; i < count; i++) {
     83             s += message[i].code + "     " + message[i].name + "     " + message[i].grade + "
    ";
     84         }
     85         JOptionPane.showMessageDialog(null, s);
     86     }
     87 
     88     // 按姓名查找,如果没有找到,则返回-1
     89     public static int findByName() {
     90         String name = JOptionPane.showInputDialog(null, "请输入姓名");
     91         for (int i = 0; i < count; i++) {
     92             if (message[i].name.equals(name)) {
     93                 return i;
     94             }
     95         }
     96         JOptionPane.showMessageDialog(null, "没有找到该学生");
     97         return -1;
     98     }
     99 
    100     // 删除
    101     public static void delete() {
    102         int index = findByName();
    103         if (index != -1) {
    104             for (int i = index; i < count - 1; i++) {
    105                 message[i] = message[i + 1];
    106             }
    107             count--;
    108             show();
    109         }
    110     }
    111 
    112     // 查找
    113     public static void find() {
    114         int index = findByName();
    115         if (index != -1) {
    116             JOptionPane.showMessageDialog(null,
    117                     "学号:" + message[index].code + "     姓名:" + message[index].name + "     成绩:" + message[index].grade);
    118         }
    119     }
    120 
    121     // 修改
    122     public static void update() {
    123         int index = findByName();
    124         if (index != -1) {
    125             message[index].code = Integer.parseInt(JOptionPane.showInputDialog(null, "请输入学号"));
    126             message[index].name = JOptionPane.showInputDialog(null, "请输入姓名");
    127             message[index].grade = Integer.parseInt(JOptionPane.showInputDialog(null, "请输入成绩"));
    128             show();
    129         }
    130     }
    131 
    132     // 排序
    133     public static void rank() {
    134         for (int i = 0; i < count - 1; i++) {
    135             for (int j = i + 1; j < count; j++) {
    136                 if (message[i].grade < message[j].grade) {
    137                     StudentMessage x = message[i];
    138                     message[i] = message[j];
    139                     message[j] = x;
    140                 }
    141             }
    142         }
    143         show();
    144     }
    145 }
    示例
  • 相关阅读:
    Windows Server 2008 R2 服务器系统安装及配置全过程图文详解
    c#多线程
    DevExpress之TreeList控件用作导航使用说明
    Windows操作系统下搭建Git服务器和客户端。
    D^3CTF 2021 8-bit-pub
    shiro-1.2.4反序列化分析踩坑
    *CTF2021 oh-my-bet
    无线网络密码破解初体验
    瑞昱rtl819x-SDK-v3.4.14b的watchdog分析
    RC4加密算法
  • 原文地址:https://www.cnblogs.com/LYL6868/p/8681938.html
Copyright © 2011-2022 走看看