##一、数组的定义 一维数组: 1、声明 类型标识符 数组名[]; 类型标识符 []数组名 2、初始化 (1)直接指定初值 (2)用关键字new初始化数组
int a[]; a=new int[9];3、一维数组的引用 直接对下表进行引用,但是不可以超过数组的长度 二维数组: 1、二位数组的声明,两种方式 类型标识符 数组名[][] 类型标识符 [][]数组名 2、二维数组的初始化 (1)直接指定初值 (2)用关键字new初始化数组
##二、类与对象的(基础)
在这里插入代码片 面向对象程序设计概述 1、程序=对象+对象+…+对象 对象=数据结构+算法 2、面向对象方法的特征 (1)抽象 (2)对象:是一类事物的具体体现。对象是类的一个实例,必然具备该类事物的属性 和行为。 (3)类:是一组相关属性和行为的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该 类事物。 (4)面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。 封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问。要访问该类的数据,必须通过指定的方式。适当的封装可以让代码更容易理解与维护,也加强了代码的安全性。 (5)继承 :就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。 (6):多态 : 是指同一行为,具有多个不同表现形式
类与对象 类的声明 [标识符] class 类名{ //类的属性 //类的方法 } 1、类头 有public,static ,abstract ,protected这几种修饰符。 (1)public 使用对象:类、接口、成员 介绍:无论它所处在的包定义在哪,该类(接口、成员)都是可访问的 (2)static 使用对象:类、方法、字段、初始化函数 介绍:成名为static的内部类是一个顶级类,它和包含类的成员是不相关的。静态方法 是类方法,是被指向到所属的类而不是类的实例。静态字段是类字段,无论该字段所在的类创建了多少实例,该字段只存在一个实例被指向到所属的类而不是类的实例。初始化函数是在装载类时执行的,而不是在创建实例时执行的。 (3)abstract 使用对象:类、接口、方法 介绍:类中包括没有实现的方法,不能被实例化。如果是一个abstract方法,则方法体 为空,该方法的实现在子类中被定义,并且包含一个abstract方法的类必须是一个abstract类 (4)protected 使用对象:成员 介绍:成员只能在定义它的包中被访问,如果在其他包中被访问,则实现这个方法的类 必须是该成员所属类的子类。
2、成员变量的声明
(1)变量类型 public、protected、private:用于表示成员变量的访问权限。 static:表示该成员变量为类变量,也称为静态变量。 final:表示将该成员变量声明为常量,其值无法更改。 type:表示变量的类型。 variable_name:表示变量名称 (2)变量初始化默认值 整数型(byte、short、int 和 long)的基本类型变量的默认值为 0。 单精度浮点型(float)的基本类型变量的默认值为 0.0f。 双精度浮点型(double)的基本类型变量的默认值为 0.0d。 字符型(char)的基本类型变量的默认值为 “\u0000”。 布尔型的基本类型变量的默认值为 false。 数组引用类型的变量的默认值为 null。如果创建了数组变量的实例,但没有显式地为每个元素赋值,则数组中的元素初始化值采用数组数据类型对应的默认值。
3、构造方法 在创建对象的时候,对象成员可以由构造函数方法进行初始化。
new对象时,都是用构造方法进行实例化的; 例如;Test test = new Test(“a”); //Test(“a”);其中这个就是构造函数,“a”为构造方法的形参;
构造方法的方法名必须与类名一样。 构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。 构造方法不能作用是完成对象的初始化工作,他能够把定义对象时的参数传递给对象的域。 构造方法不能由编程人员调用,而要系统调用。 构造方法可以重载,以参数的个数,类型,或排序顺序区分4、this的引用句柄 .this是指向对象本身的引用, comp = new Componnent(this);将本身的引用传递给Componnent的构造函数,这样comp的myContainer就可以持有一个Containter类型对象的引用了 5、垃圾回收机制 (1)finalize方法
protected void finalize() { System.out.println("the object is going") }6、基本数据类型的参数传递
public class ParameterTransfer { public static void main(String[] args) { int num = 30; System.out.println("调用add方法前num=" + num); add(num); System.out.println("调用add方法后num=" + num); } public static void add(int param) { param = 100; } }