java面向对象及数组
数组
1.是什么
数组是一组相同数据类型元素的集合。 在Java中数组属于引用类型,即数组是一个对象。 这里的数据类型不仅含八大基本数据类型,还包含引用数据类型,如数组里面可以存数组,数组里面可以存放字符串。
2.写法
首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:
dataType[] type=new dataType[10];
public static void main(String[] args) { double[] myList = {1.9, 2.9, 3.4, 3.5};
// 打印所有数组元素
for (int i = 0; i < myList.length; i++) {
System.out.println(myList[i] + " ");
}
// 计算所有元素的总和
double total = 0;
for (int i = 0; i < myList.length; i++) {
total += myList[i];
}
System.out.println("Total is " + total);
// 查找最大元素
double max = myList[0];
for (int i = 1; i < myList.length; i++) {
if (myList[i] > max) max = myList[i];
}
System.out.println("Max is " + max); }
面向对象
1.是什么
Java 是面向对象的编程语言,对象就是面向对象程序设计的核心。 所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。 对象有以下特点: 对象具有属性和行为。 对象具有变化的状态。
2.创建对象
对象是根据类创建的。在Java中,使用关键字 new 来创建一个新的对象。创建对象需要以下三步:
- 声明:声明一个对象,包括对象名称和对象类型。
- 实例化:使用关键字 new 来创建一个对象。
- 初始化:使用 new 创建对象时,会调用构造方法初始化对象。
3.源文件声明规则
在本节的最后部分,我们将学习源文件的声明规则。当在一个源文件中定义多个类,并且还有import语句和package语句时,要特别注意这些规则。
- 一个源文件中只能有一个 public 类
- 一个源文件可以有多个非 public 类
- 源文件的名称应该和 public 类的类名保持一致。例如:源文件中 public 类的类名是 Employee,那么源文件应该命名为Employee.java。
- 如果一个类定义在某个包中,那么 package 语句应该在源文件的首行。
- 如果源文件包含 import 语句,那么应该放在 package 语句和类定义之间。如果没有 package 语句,那么 import 语句应该在源文件中最前面。
- import 语句和 package 语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明。
类有若干种访问级别,并且类也分不同的类型:抽象类和 final 类等。这些将在访问控制章节介绍。
除了上面提到的几种类型,Java 还有一些特殊的类,如:内部类、匿名类。
4.源码例题
//————————————————————————
/**
* 学生管理
* alt+shift+l 通过后面的代码自动补全前面的代码
*/
public class StudentManage {
private static Student[] stuData = new Student[15];
private static int index = 0;
//增
public void add(Student stu) {
stuData[index] = stu;
index++;
}
// 查单个数据
public void findById(int id) {
for (int i = 0; i < index; i++) {
Student student = stuData[i];
if (student.getId() == id) {
System.out.println(student);
break;
}
}
}
// 查所有
public void findAll() {
for (int i = 0; i < stuData.length; i++) {
Student student = stuData[i];
System.out.println(student);
}
}
// 删
public void del(int id) {
Integer delindex = null;
for (int i = 0; i < stuData.length; i++) {
Student student = stuData[i];
//挪移删除之后的数据
if (delindex != null && student != null) {
stuData[delindex] = stuData[i];
stuData[i] = null;
delindex++;
}
//具体的删除方法
if (student != null && id == student.getId()) {
stuData[i] = null;
index–;
delindex = i;
}
}
}
// 删
public void del2(int id) {
//创建一个新的数组,来承接删除后的数据
Student[] students = new Student[stuData.length];
//创建要给新的下标记,记录存储的个数
int newindex=0;
//循环便利,将其他数据赋值给新的数组
for (int i = 0; i < stuData.length; i++) {
Student student = stuData[i];
//当前对象不为空且,当前对象id不是要删除的id
if(student!=null&&student.getId()!=id){
students[newindex]=student;
newindex++;
}
}
stuData=students;
index=newindex;
}
// 改
public void update(Student stu) {
}
public static void main(String[] args) {
StudentManage manage = new StudentManage();
manage.add(new Student(1, “吴亮”, “男”, “0001”, 20));
manage.add(new Student(2, “梦晓”, “女”, “0002”, 18));
manage.add(new Student(3, “玉龙”, “男”, “0003”, 20));
manage.add(new Student(4, “宁宁”, “女”, “0004”, 18));
manage.add(new Student(5, “洋洋”, “男”, “0005”, 20));
manage.add(new Student(6, “鹏举”, “女”, “0006”, 18));
manage.add(new Student(7, “磊磊”, “男”, “0007”, 20));
manage.findAll();
manage.findById(2);
System.out.println("--------------------------------------------");
manage.del2(4);
manage.findAll();
}
}
//——————————————————————————