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. TCP/IP数据包结构详解

    一般来说,网络编程我们只需要调用一些封装好的函数或者组件就能完成大部分的工作,但是一些特殊的情况下,就需要深入的理解网络数据包的结构,以及协议分析.如:网络监控,故障排查等…… IP包是不安全的,但是 ...

  2. nyoj51-管闲事的小明

    管闲事的小明 时间限制:4000 ms  |  内存限制:65535 KB 难度:2 描述 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数轴,马路的一端 ...

  3. [Ynoi2011]D1T1

    题目大意: 给定一个序列$a_1,a_2,\dots,a_n$,进行$m$次操作,每次操作如下: 1. 给定$x,y,z$,对所有下标为$y,y+x,y+2x,\dots$的元素加上$z$(保证$y\ ...

  4. 常用rides命令

    rides使用步骤 1.源代码构建安装 1.下载,Linux下命令wget http://redis.io/download下载redis的包 2.解归档Linux下命令tar -xvf redis- ...

  5. Windows 2003 IIS 不支持ASP的问题

    Windows 2003 IIS 不支持ASP的问题 问题: HTTP 错误 404 - 文件或目录未找到. Internet 信息服务 (IIS) 第一步,启用Asp,进入:控制面板 -> 管 ...

  6. 译:滑雪租赁问题(ski rental problem)

         本文翻译自维基百科词条:http://en.wikipedia.org/wiki/Ski_rental_problem 滑雪租赁问题(ski rental problem)是一类问题的总称, ...

  7. iOS 隐藏NavigationBar的方法

    使用下面方法: - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [self.navigationCon ...

  8. luogu2508 [HAOI2008]圆上的整点

    题目大意 给出\(r\),求圆\(x^2+y^2=r^2\)上坐标均为整数的点数.\(n<=2,000,000,000\) 总体思路 我们看到这个数据大小,还是个数学题,想到这个的时间复杂度应当 ...

  9. php传值调用和传值调用和变量函数

    php传值调用和传值调用和变量函数 代码 <?php //传值调用,$m的值不改变 function text($i){ $i = 'Clive'; echo $i; } text(123); ...

  10. php与java语法的区别

    php与java语法的区别 个人觉得在学习语言时,可以通过比较来进行学习.由于长时间写java代码,对java的基本语法还算熟悉,现在转学php,就php中基本语法与java基本语法差异进行比较. 1 ...