Java课堂内容
Chapter 1
1.1 Java basics // Java基础
1.2 Your first Java program // 第一个Java程序
1.3 Eclipse development platform // 介绍Eclipse
1.4 Basic syntax // 基本语法
1.5 Operators // 操作符
1.6 Control structures // 控制流程
Chapter 2
2.1 Introduction to Object Orientation // 面向对象介绍
2.2 Objects // 对象
2.3 Classes // 类
2.4 Classes and Objects in Java // Java中的类和对象
2.5 Composition // 组合
一个类可以将另一个类的对象作为属性,使之成为组合类
例如,在"学生"类中,我们可以定义名为"advisor"的导师属性代替简单的String类
优点:避免数据冗余和潜在的丢失
2.6 Java API Introduction // Java API 介绍
Chapter 3
3.1 Java Methods Overview // Java方法概述
3.2 Methods // 方法
3.3 Message Passing Between Objects // 对象之间的信息传递
3.4 Information Hiding / Accessibility // 信息隐藏及可访问性
3.5 Method Overloading // 方法重载
3.5 "this" keyword // this关键字
Chapter 4
4.1 Associations and Links // 关联和连接
类之间存在的结构化关系成为关联,说明一个事物的对象与另一个事物的对象相关联
某个对象会长期的持有另一个对象的引用,而二者的关联往往也是相互的
两个相对独立的对象(A、B),当A对象持有B对象的时候,形成关联关系
两个特定对象之间的结构化关系成为连接
关联是某种类的对象之间的潜在关系,连接是特定类型对象之间的实际关系
大多数关联出现在两个不同的类之间,这种关联成为二元关联
一元关联或自反关联发生在同一个类的两个实例之间,三元关联涉及到三个类
4.2 Multiplicity // 多重性
多重性:类型A的对象与类型B的对象的关联数量
one to one:(一个学生对应一个成绩单)
public class Transcript { private String ID; private Student student; public void setStudent(Student s){ this.student=s; } public Student getStudent( ){ return s; } } public class Student { private String name; private Transcript t; public void setTranscript(Transcript t){ this.t=t; } public Transcript getTranscript( ){ return t; } }
one to many:
public class Student { private String degree; private String major; private Professor p; public String getDegree( ){ return this.degree; } public String getMajor( ){ return this.major; } public Professor getProfessor( ){ return this.p; } }
public class Professor { private String ID; private String name; private Student advise[]; // 实现一个Professor对多个Student public String getID( ){ return this.ID; } public String getName( ){ return this.name; } }
many to many:
注意:多重性的概念属于关联,而不是连接。
两个对象之间始终存在成对的连接,因此,本质上的多重性定义了某个关联可以从给定对象中产生多少个连接
4.3 Aggregation and composition // 聚合和组合
聚合是一种强关联关系,是整体和部分之间的关系;
关联关系的两个类处于同一个层次上,而聚合关系的两个类处于不同的层次上,一个是整体一个是部分
在聚合关系中,代表部分的对象有可能会被多个代表整体的对象所共享
组合是关联关系的一种特例,成为强聚合,也体现整体和部分的关系
此时整体和部分不可分
4.4 Collection of Objects // 对象集合
数组 - 对象数组 - 集合
数组定义:char s [ ]或 char [ ] s ; s=new char [5] ;
初始化数组:int n [ ] ={ 10,20,30 } ; n [1] = 11 ; 创建大小为3的数组n,并分别赋值;将数组n中第二个元素赋值11;
如果没有对数组内数据初始化,则系统会默认对其进行初始化
二维数组:不同数组中的元素个数可以不同
对象数组:Student [ ] student=new Student [5] ;
Student [] student = { new Student(); new Student("aMao"); new Student("aMao",18); } // 通过复用构造方法建立对象数组
Java集合类实例化:
public class Student { private String name; private String ID; private ArrayList<Course> course; // 声明一个course的Course类动态数组 public Student (String name,String ID){ this.name=name; this.ID=ID; course = new ArrayList<Course>( ); // 新建动态数组,使用迭代器可以对动态数组内容进行操作 } public String getName( ){ return this.name; } public String getID( ){ return this.ID; } }
ArrayList list = new ArrayList( ); // 定义ArrayList动态数组 list.add( new Student("aMao",18) ); // 添加Student类的实例化对象 list.add( new NaoTan("LaoXu","18") ); // 添加NaoTan类的实例化对象 Student s1 = (Student) list.get( 0 ); // 将动态数组内对象通过强制类型转换赋给s1 NaoTan N2 = (NaoTan) list.get( 1 );
Java内的泛型(一般来说,动态数组内的储存对象可以是任意类型,而泛型数组内的对象类型唯一,无需强制类型转换即可赋值给该类的声明变量)
ArrayList<NaoTan> list = new ArrayList<NaoTan>( ); list.add("LaoXu"); NaoTan n1 = list.get(0);
泛型动态数组可以作为某个类中的私有属性,表示一对多的关系,在构造方法中可以对其进行实例化,然后在普通方法中对其内部操作
迭代器(Iterator)
迭代器包含三个方法:hasnext ( ) next ( ) remove ( ),作用分别问:判断是否还有元素,获取下一个元素,删除返回的元素
ArrayList< NaoTan > NT = new ArrayList< NaoTan > ( ); Iterator< NaoTan > iter = NT.Iterator ( ) ; for( NaoTan nt : NT){ System.out.println(nt); }
4.5 Inheritance // 继承
4.6 Overriding // (方法)重写
4.7 "super" keyword // super关键字
4.8 "final" keyword // final关键字
4.9 equals ( ) and toString( ) method // equals()和toString()方法
Chapter 5
5.1 Identifying Appropriate Classes // 确定适当的类
5.2 Determining Associations Between Classes // 确定类之间的关联
5.3 Identifying Attributes // 识别属性
5.4 Identifying Operations // 识别操作
5.5 Library System Class Diagram // 图书馆系统类图
5.6 Student Registry System Class Diagram // 学生注册系统班级图
Chapter 6
6.1 Polymorphism // 多态
6.2 Abstract Classes // 抽象类
6.3 Interfaces // 接口
6.4 Static Features // 静态功能
6.5 Design Pattern // 设计模式
6.6 Singleton Pattern // 单实例模式
6.7 Strategy Pattern // 策略模式
Chapter 8
8.1 文件I/O介绍
8.2 读取和写入文件的示例
8.3 文本和二进制格式
8.4 随机访问&顺序访问
8.5 在库系统中使用文件I/O
8.2 读取和写入文件的示例
8.3 文本和二进制格式
8.4 随机访问&顺序访问
8.5 在库系统中使用文件I/O