含前不含后
含前不含后
setter getter
如果方法不是在
属性--特征
行为--功能
类与对象关系:
类和对象的定义结构:
对象的内存分配:
java不允许调用函数来改变
1.类与对象的关系:
类的实例化就 是对象
类、接口、抽象类、对象
包、异常、开发工具为主
java的新特性
代理设计模式(Proxy)
抽象类的应用---模版设计
字符串常量就是String的匿名对象
小小技巧:为了避免空指向的出现,使用匿名对象.方法(),即字符串.equals()
String的两种实例化方式:
String str = "hello";
String str = new String("hello");
数组的操作方法:
1.数组拷贝
将数组的部分内容拷贝到另一个数组中
语法:System.arraycopy(源数组名称,源数组拷贝开始索引,目标数组名称,目标数组拷贝开始索引,拷贝长度)
2.数组排序:
语法:javaArrays.sort(数组名称)
Arrays属于java.util包中
数组排序:几乎都是升序
public int[] arrayMethod(int[] temp){
for(int x = 0;x<temp.length;x++){
for(int i = 0 ;i<temp.length-1 ; i++){
if(temp[i]>temp[i+1]){
int t = temp[i];
temp[i] = temp[j];
temp[j] = i;
}
}
}
}
数组转序;两个思路
定义一个同样长度的数组,将原有数组倒序放在新数组中。方法不好,多占用了堆内存,产生了内存垃圾;
利用算法,在一个数组上完成置换操作
二维数组定义语法:
动态初始化:数据类型 变量名称[][] = new 数据类型[行个数][列个数];
静态初始化:数据类型 数组名称[][]= new 数据类型[][]{{值,值,...},{值,值,...},......};
二维数组:将多个一维数组定义成一个更大数组,每个一维数组定义一个行好。
数组的定义语法:
·声明并开辟空间:
数据类型 数组名称[] = new 数据类型[长度];
数据类型 [] 数组名称 = new 数据类型[长度];
·分布完成:
|-声明数组:数据类型 数组名称[] = null;
|-开辟数组:数组名称 = new 数据类型[长度];
静态初始化:
|-简化格式:(不推荐使用)
数据类型 数组名称[] = {值,值,....};
|-完整格式:
数据类型 数组名称[] = new 数据类型 [] {值,值,......}
java的封装性是最早讲的,也是最后才讲完的
java的封装性是最早讲的,也是最后才讲完的
抽象类与普通类
a.普通类可以直接产生实列化对象
可以用fianl定义类,方法
1:用final定义类:fianl定义的类不能有子类;
2:用final定义方法:final定义的方法不能被子类覆写;
3:使用final定义的变量就成了常量,不能够被随便更改;