Java 类 对象 包
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 类 对象 包的更多相关文章
- 规则引擎集成接口(九)Java类对象
Java类对象 右键点击“对象库” —“添加java类对象”,如下图: 弹出窗体,在文本框中输入类的全名“com.flagleader.test.Test”,选择该类型后确定,如下: 显示如下,勾选上 ...
- Java基础7:关于Java类和包的那些事
更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux ...
- 转: JaxbContext生成xml文件或java类对象转化注解
JAXB(Java API for XML Binding),提供了一个快速便捷的方式将Java对象与XML进行转换.在JAX-WS(Java的WebService规范之一)中,JDK1.6 自带的版 ...
- 存在继承关系的Java类对象之间的类型转换(一)
类似于基本数据类型之间的强制类型转换. 存在继承关系的父类对象和子类对象之间也可以 在一定条件之下相互转换. 这种转换需要遵守以下原则: 1.子类对象可以被视为是其父类的一个对象2.父类对象不能被 ...
- java类 对象 和构造方法
github地址:https://github.com/lily1010/java_learn/tree/master/dog java中对象和类 java中万物皆对象,比如说动物,里面有猫,狗,鱼等 ...
- ResultSet转成java类对象
在做web开发时遇到一个事情: 需要从mysql数据表中查询数据并遍历查询结果 这样最简单的方式是:查询到结果根据表中字段列表的顺序来一个个获取字段,但这样需要记住字段的顺序,操作起来不是那么方便.因 ...
- 关于Java类和包的那些事
*.Java文件 问题:一个.java源文件中是否可以包括多个类(不是内部类)?有什么限制? 答案:可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致.一个文件中可以 ...
- Java类对象数组声明和初始化
Java是纯面向对象语言.类是其重要构成单位. 然后,在实际编程中,我们会自己定义一些类,如Point <span style="font-size:14px;">pu ...
- [转]java类 对象 和构造方法
github地址:https://github.com/lily1010/java_learn/tree/master/dog java中对象和类 java中万物皆对象,比如说动物,里面有猫,狗,鱼等 ...
随机推荐
- 切换原生appium里面H5页面
#coding = utf-8from appium import webdriverimport time'''1.手机类型2.版本3.手机的唯一标识 deviceName4.app 包名appPa ...
- 3分钟实现小程序唤起微信支付 Laravel教程
微信支付的接入,如果不使用成熟的开发包,将是巨大的工作量. 依赖 EasyWechat 先在 laravel 项目中依赖 easywechat 这个包 composer require "o ...
- python中的二进制、八进制、十六进制
python中通常显示和运算的是十进制数字. 一.python中的二进制 bin()函数,将十进制转换为二进制,0b是二进制的前缀.如: >>> bin(10) '0b1010' 二 ...
- vue监听页面大小变化重新刷新布局
在项目中由于某些div元素在布局的时候需要初始化宽高,因为当浏览器缩小屏幕的时候需要重新刷新页面视图. 分析思路: 1.在store中创建state,用于保存当前浏览器的宽.高值. 2.在mounte ...
- reset清除所有浏览器默认样式
温馨提示 reset 的目的不是清除浏览器的默认样式, 这仅是部分工作. 清除和重置是紧密不可分的.reset 的目的不是让默认样式在所有浏览器下一致, 而是减少默认样式有可能带来的问题.reset ...
- Spring Cloud Sleuth(十四)
作用 再微服务中 服务调用服务很常见.服务中相互调用链路追踪的尤为重要,能够帮助我们再异常时分析出哪个服务出了异常.以及各个链路中相互调用所消耗时间,通过这些数据能够帮助我们分析出各个服务的性能瓶颈 ...
- SGU - 296 - Sasha vs. Kate
上题目: 296. Sasha vs. Kate Time limit per test: 1 second(s)Memory limit: 65536 kilobytes input: standa ...
- rabbit-入门
#启用rabbit的web管理 rabbitmq-plugins.bat enable rabbitmq_management 发布的窗口用TOPIC模式 rabbitmq没有确认消息接收的返回值,M ...
- redis-快照
rdb模式,默认模式 aof模式 如何配置aof模式 第一步:开启是否追加: Please check http://redis.io/topics/persistence for more info ...
- owin-startup方法
owin在根目录下有这个startup.cs文件,里面有个startup方法,这个和global.asax有什么区别呢? 测试一下执行顺序,是先执行了global.asax文件,再执行了startup ...