Java类和对象

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

例子:

学生管理系统

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

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

 public class Student {
/** 学生学号 */
public int number;
/** 学生姓名 */
public String name;
/** 学生成绩 */
public int grade;
}

随后在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.添加\n2.显示\n3.删除\n4.查找\n5.修改\n6.排序\n7.退出");
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 = "学号 姓名 成绩\n";
for (int i = 0; i < stunum; i++) {
str += array[i].number + " " + array[i].name + " " + array[i].grade
+ "\n";
}
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 + "\n" + "姓名:" + array[index].name + "\n" + "成绩:"
+ 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类的引用中,注意静态变量和成员变量的作用范围及定义,静态变量是所有对象共享的变量(比如所有学生都是在一个学校上学,那么学校的名称就可以是静态的变量)静态变量可以通过对象或者类名两种方式访问,但是成员对象相互独立(比如一个学校每个学生都有属于自己的年龄和姓名还有学号)成员变量只能通过对象的方式来访问。

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

Java 类 对象 包的更多相关文章

  1. 规则引擎集成接口(九)Java类对象

    Java类对象 右键点击“对象库” —“添加java类对象”,如下图: 弹出窗体,在文本框中输入类的全名“com.flagleader.test.Test”,选择该类型后确定,如下: 显示如下,勾选上 ...

  2. Java基础7:关于Java类和包的那些事

    更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux ...

  3. 转: JaxbContext生成xml文件或java类对象转化注解

    JAXB(Java API for XML Binding),提供了一个快速便捷的方式将Java对象与XML进行转换.在JAX-WS(Java的WebService规范之一)中,JDK1.6 自带的版 ...

  4. 存在继承关系的Java类对象之间的类型转换(一)

      类似于基本数据类型之间的强制类型转换. 存在继承关系的父类对象和子类对象之间也可以 在一定条件之下相互转换. 这种转换需要遵守以下原则: 1.子类对象可以被视为是其父类的一个对象2.父类对象不能被 ...

  5. java类 对象 和构造方法

    github地址:https://github.com/lily1010/java_learn/tree/master/dog java中对象和类 java中万物皆对象,比如说动物,里面有猫,狗,鱼等 ...

  6. ResultSet转成java类对象

    在做web开发时遇到一个事情: 需要从mysql数据表中查询数据并遍历查询结果 这样最简单的方式是:查询到结果根据表中字段列表的顺序来一个个获取字段,但这样需要记住字段的顺序,操作起来不是那么方便.因 ...

  7. 关于Java类和包的那些事

    *.Java文件 问题:一个.java源文件中是否可以包括多个类(不是内部类)?有什么限制? 答案:可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致.一个文件中可以 ...

  8. Java类对象数组声明和初始化

    Java是纯面向对象语言.类是其重要构成单位. 然后,在实际编程中,我们会自己定义一些类,如Point <span style="font-size:14px;">pu ...

  9. [转]java类 对象 和构造方法

    github地址:https://github.com/lily1010/java_learn/tree/master/dog java中对象和类 java中万物皆对象,比如说动物,里面有猫,狗,鱼等 ...

随机推荐

  1. [luogu4251 SCOI2015] 小凸玩矩阵 (二分图最大匹配)

    传送门 Description Input Output 输出包含一行,为选出的 n 个数中第 k 大数的最小值. Sample Input 输入样例1: 2 3 1 1 2 4 2 4 1 输入样例 ...

  2. Linux—Ubuntu14.0.5安装mongo

    1.安装mongo sudo apt-get install mongo 2.如果遇到找不到安装包运行,那就更新资源列表 sudo apt-get update 3.安装成功会自动运行mongo pg ...

  3. phpcms 电脑手机合并

    电脑手机端 ========================== <script type="text/javascript"> function browserRed ...

  4. 洛谷 P3819 松江1843路

    题目描述 涞坊路是一条长L米的道路,道路上的坐标范围从0到L,路上有N座房子,第i座房子建在坐标为x[i]的地方,其中住了r[i]人. 松江1843路公交车要在这条路上建一个公交站,市政府希望让最多的 ...

  5. POJ 1084

    WA了好久,第一次用重覆盖的模型做题.感觉这题有个陷阱,那就是当去掉某些边后,若因为这个边去掉而被破环的正方形还存在,那么就会造成覆盖不完全,WA. 所以,在去掉边后,必定有些正方形是不存在的,须重新 ...

  6. Oracle中如何判断字符串是否全为数字

    Oracle中如何判断字符串是否全为数字 学习了:http://www.cnblogs.com/zrcoffee/archive/2012/12/11/2812744.html 本文介绍了判断字符串是 ...

  7. Notepad++如何编译、运行Java

    首先要让Notepad++编译和运行Java,前提是电脑里已经配置好了Java的环境(这里可以参考我博客里关于Java环境配置的那篇随笔). 在Notepad++上面的选项栏中找到 插件---> ...

  8. selenium找到页面元素click没反应

    问题描述:通过调试可以看到控制台已经找到了起诉入口页面元素,可是点击“我是原告”没有反应了,也没有报错 解决办法:登录时是跳进了两层的iframe中,需要跳出iframe才能找到我是原告.

  9. Mac上搭建android环境:Android Studio+GreenVPN

    1.下载Android Studio,https://developer.android.com/sdk/index.html 2.使用GreenVPN,感觉还能够.18/月.http://www.g ...

  10. Reset and Clear Recent Items and Frequent Places in Windows 10

    https://www.tenforums.com/tutorials/3476-reset-clear-recent-items-frequent-places-windows-10-a.html ...