zoukankan      html  css  js  c++  java
  • Java 类 对象 包

    Java类和对象

    类是具有相同属性和行为的一组对象的集合。(属性是用来描述对象的特征可以理解为成员变量 例如:一个学生(对象)他的类可能是学校,它的属性可能是学号,姓名,年龄,班级,成绩等等)

    例子:

    学生管理系统

    要求实现登陆,学生信息的添加、显示,删除,修改,查询,排序,退出功能。

    建立一个学生类,类中有学生的三个需要用到的属性(学号、姓名、成绩)

    1 public class Student {
    2     /** 学生学号 */
    3     public int number;
    4     /** 学生姓名 */
    5     public String name;
    6     /** 学生成绩 */
    7     public int grade;
    8 }

    随后在StuInfo的mian方法中实例化Student对象完成系统

    在main方法中应用类型声明为数组

    建立6个mian下的方法,分别实现(添加,显示,删除,查找,修改,排序)功能

    package Hw0420;
    
    import javax.swing.JOptionPane;
    
    public class StuInfo {
        public static Student[] array = new Student[20];
        public static int stunum = 0;
    
        public static void main(String[] args) {
            JOptionPane.showMessageDialog(null, "欢迎使用XXX学生管理系统");
            boolean bl = login();
            if (!bl) {
                JOptionPane.showMessageDialog(null, "非法用户");
            }
            while (true) {
                String s = JOptionPane.showInputDialog(null, "1.添加
    2.显示
    3.删除
    4.查找
    5.修改
    6.排序
    7.退出");
                int input = Integer.parseInt(s);
                switch (input) {
                case 1:
                    add();
                    break;
                case 2:
                    show();
                    break;
                case 3:
                    del();
                    break;
                case 4:
                    find();
                    break;
                case 5:
                    mod();
                    break;
                case 6:
                    sort();
                    break;
                case 7:
                    JOptionPane.showMessageDialog(null, "感谢使用XXX学生管理系统");
                    System.exit(0);
                    break;
                }
            }
        }
        /**
         * 登录判断
         * 
         * @return是否登录成功
         */
        public static boolean login() {
            for (int i = 0; i < 3; i++) {
                String id = JOptionPane.showInputDialog(null, "请输入您的账号");
                String pwd = JOptionPane.showInputDialog(null, "请输入您的密码");
                if (id.equals(pwd)) {
                    return true;
                }
            }
            return false;
        }
        /**
         * 添加
         */
        public static void add() {  
            String strcode = JOptionPane.showInputDialog(null, "请输入学生学号");
            String strname = JOptionPane.showInputDialog(null, "请输入学生姓名");
            String strgrade = JOptionPane.showInputDialog(null, "请输入学生成绩");
            Student s = new Student();在此完成对学生对象各个属性的初始化
            s.number = Integer.parseInt(strcode);
            s.name = strname;
            s.grade = Integer.parseInt(strgrade);
            array[stunum] = s;
            stunum++;
        }
        /**
         * 查找学生
         * 
         * @return找到返回下标 找不到返回-1
         */
        public static int findByname() {
            String s = JOptionPane.showInputDialog(null, "请输入您要查找的学生姓名");
            for (int i = 0; i < stunum; i++) {
                if (s.equals(array[i].name)) {
                    return i;
                }
            }
            JOptionPane.showMessageDialog(null, "查无此人");
            return -1;
        }
        /**
         * 显示
         */
        public static void show() {
            String str = "学号          姓名            成绩
    ";
            for (int i = 0; i < stunum; i++) {
                str += array[i].number + "                    " + array[i].name + "                     " + array[i].grade
                        + "
    ";
            }
            JOptionPane.showMessageDialog(null, str);
        }
        /**
         * 删除
         */
        public static void del() {
            int index = findByname();
            if (index != -1) {
                for (int i = index; i < stunum; i++) {
                    array[i] = array[i + 1];
                }
                JOptionPane.showMessageDialog(null, "已删除");
                show();
                stunum--;
            }
        }
        /**
         * 查找
         */
        public static void find() {
            int index = findByname();
            if (index != -1) {
                String str = "学号:" + array[index].number + "
    " + "姓名:" + array[index].name + "
    " + "成绩:"
                        + array[index].grade;
                JOptionPane.showMessageDialog(null, str);
            }
        }
    
        /**
         * 修改
         */
        public static void mod() {
            int index = findByname();
            if (index != -1) {
                String strcode = JOptionPane.showInputDialog(null, "请输入学生学号");
                String strname = JOptionPane.showInputDialog(null, "请输入学生姓名");
                String strgrade = JOptionPane.showInputDialog(null, "请输入学生成绩");
                array[index].number = Integer.parseInt(strcode);
                array[index].name = strname;
                array[index].grade = Integer.parseInt(strgrade);
            }
            show();
        }
        /**
         * 排序
         */
        public static void sort() {
            for (int i = 0; i < stunum; i++) {
                for (int j = i + 1; j < stunum; j++) {
                    if (array[i].grade > array[j].grade) {
                        Student s = array[i];
                        array[i] = array[j];
                        array[j] = s;
                    }
                }
            }
            show();
        }
    }

    总结

    在JAVA类的引用中,注意静态变量和成员变量的作用范围及定义,静态变量是所有对象共享的变量(比如所有学生都是在一个学校上学,那么学校的名称就可以是静态的变量)静态变量可以通过对象或者类名两种方式访问,但是成员对象相互独立(比如一个学校每个学生都有属于自己的年龄和姓名还有学号)成员变量只能通过对象的方式来访问。

    注意在对象的使用上,指向各个属性的变量名都是应用的地址,注意其指向方向的改变。

  • 相关阅读:
    JFinal 数据库“手动”事务(提交、回滚)
    redis有序集合性能 列表、集合、有序集合
    比特币的原理
    word2vec原理总结
    xgboost 算法总结
    GBDT学习笔记
    LR 算法总结--斯坦福大学机器学习公开课学习笔记
    sklearn的基本使用
    批量梯度下降(BGD)、随机梯度下降(SGD)以及小批量梯度下降(MBGD)的理解
    Logistic回归计算过程的推导
  • 原文地址:https://www.cnblogs.com/zxiaoyuer/p/6750542.html
Copyright © 2011-2022 走看看