Language — the Java Programming Language.
Class Declaration:
问题: 我们有一辆小汽车,可以在一个拥有x y坐标的地图上按照东南西北方向任意的行驶,你可以设定小车行驶的方向和距离,小车会向你汇报它的坐标位置。
过程: 问题产生→利用语言代码→解决问题
把小汽车看成对象→引入对象(Object): 抽象、消息、接口、封装、继承、多态
↓
创建类(只要把一个物体看成是对象的话,就可以创建一个类来处理它);
↓
关键字:定义,初始化,访问权限,引用,转型
定义:所有的类,属性,方法都要经定义后使用;
初始化: 类的初始化->构造器 属性的初始化->非必需,未定义时为 0;
访问权限: 包,类,属性,方法都有访问权限;Public Protected Private
引用: 包括自身的引用;类之间的引用
转型: 数据类型相互转换
I 定义,初始化,访问权限
/*
*注释各嵌入式文档
*/
import java.util.*;[类库->类]//package
Class Declaration |
package .*;
public abstract/final class name of class extends Superclass implements interfaces {//scope
[Visibility] [static] [final] [数据类型] Variable ;//数据初始化
Constructor
[Visibility] [ Abstract] [static] [final] [返回类型] Methods(parameters list){
1 构造与清理-> 数据初始化
2 方法重载
Class Body |
}
清理->垃圾回收器
}
成员访问限制(Visibility): 包访问权限 Public Protected Private
Public : 可以给所有的类访问,共用接口;
Private : 只可供内部类访问,其它的类不能访问;
Protected: 只可供内部类和其子类访问;
类的静态成员(Static) :类似全局变量,可用于声明变量与方法;
Abstract :
Final : final method
– Cannot be overridden in subclass
final class
– Cannot be superclass (cannot be extended)
• Class cannot inherit final classes
Extends:
- Create class (subclass) from existing one (superclass)
• Subclass creation does not affect superclass
– New class inherits attributes and behaviors,except private
– Software reuse
Imterface :
Variable: 定义、声明与初始化一个变量;
定义:指定它的数据类型包括:Boolean 、Integer 、Float 、Array、 String 、NULL,void,
在定义时我可以采用数据集合collections(Array, collection(list,set),Map)进行存储成员属性
声明:Public Private Protected Static final
Constructor: 1. Same name as class
2. Initializes instance variables of a class obiect
3. Call class constructor to instantiate object of that class
4. Overload constructor
_ Methods (in same class) may have same name
_ Must have different parameter lists
Methods: methods declaration name of methods (parameters list) {
Methods Body
}
Methods Declaration : public private protected static abstract
Methods Body: 引入 Java API 结构控制 运算符与表达式等
Methods return value:
Method Overloading :
– Several methods of the same name
– Different parameter set for each method
• Number of parameters
• Parameter types
I 类与对象
1.1 类与对象的基本概念;
类是数据与方法的集合体; 从这个定义看出编写类其实就是在写类的数据与方法;
类的实例化,称为对象;通常用new 创建;
. 包
. 访问权限
包括:包、类、属性、方法;
1.2 数据类型
数据类型:基本数据类型与类类型;凡没有说明程序所讲的类型均指数据类型
1.3 编写类
类的一般组成 如上
1.4 定义
不管是类、属性、方法都要先定义后使用;
1.5 对象的创建、使用各生命期
II 属性
2.1 属性即为数据;具有容器的功能,
2.2 属性的定义
一般的形式:
[Visibility,static,final] [数据类型] Variable ;//数据初始化
数据类型,一定要有,但[Visibility,static,final]可有可无; 其中数据类型包括基本数据类型与类类型
基本数据类型: boolean char byte short int long float double void ;
类类型: Object 如 String str = new String(“abc”);
特殊的数据类型: String 、Array
2.3 属性的初始化
java的instance variable 是自动初始化的;而局部变量是不初始化的;
只要定义了instance variable 便可以在方法中直接调用;
如
class MyClass{
String str = new String(“abc”);// 当定义为 static str 不可在getFirstStr中使用;
String getFirstStr(String str){
Return str;
}
}
但在static 以及main()中是不可以使用的;
2.3.2 数组的初始化
属性的初始化时;所指定的值,在别外调用时可以动态改变;
int[ ] x = int [2];
int[ ]y = {1,2,3,4,5,6};
x=y; // 虽然x 指定长度为2 但也可赋于比它还长的数组;
III 方法(method)
3.1 方法的组成
[方法声明 :Visibility,Static,Abstract,final] [返回类型] Methods(Argument list){
/* Method body */
}
方法的基本组成部分包括:名称、参数、返回值与方法体;
方法名和参数列表共同唯一地标识出某个方法;
参数不像php那样doSomeThing($num=1,isOk=false)可以赋值初始化;
而是通过 类型声明 doSomeThing(int num,boolen isOk)
3.2 方法的初始化
构造器->构造方法
特点:无返回值支持重载
3.3重载
区分方法重载的方法有:1 传入参数不同 ;
方法调用原则:看原形,意思就是说 Overload.inFro(); Overload.inFro(int i)
3.3.2 构造器的重载
3.4清理
3.5 特殊的方法:接口
没有定义的方法-->接口
interface myInterFace{}
3.6 方法的设计
3.6.1 递归(Recursion) Vs 迭代(Iteration)
3.6.2 算法设计
小结:
1 方法的调用都有要通过对象且是通过发送消息的方式; 如 Math.abs(int i);
2
.转型