9-24 张森霖
面向对象
- 面向过程:当需要实现某一个功能时,每一个步骤都亲历亲为,都参与。
- 面向对象:当需要实现某一个功能时,不关心步骤。
- 面向对象的三大特征:封装,继承,多态。
类
-
类和对象的关系就是抽象和具体的关系。
-
类的定义:访问修饰符 class 类名 {}
-
类的成员不包括一下几个:
- 构造方法 c
- 实例初始化器 { } b
- 静态初始化器 static{ } a
方法
- 什么是方法? 答:方法是实现某一特定功能的代码块
- 方法的设计遵循功能单一原则,一个方法只干一件事。
关于可变参数:类型+...+变量名
public void add(int... nums) {
// 使用方式和数组一样
System.out.println("add(int... nums)");
}
使用方法和数组一样
attention:可变参数只能出现在参数列表的最后一位。
eg:
public class Test {
public int change(int...num) {
int c=0;
for(int i=0;i<num.length;i++) {
c+=num[i];
}
return c;
}
public static void main(String[] args) {
Test t=new Test();
int sum=t.change(1,2,3,4,5,6,7);
System.out.println(sum);
}
}
static 的生命周期
- static方法在类被加载的时候就加载了(并不意味着要执行),而且只加载一次。实例方法在对象初始化的时候加载。
实例方法和static方法的使用
由于static方法的生命周期比实例方法长,所以实例方法能够调用static方法,而static方法不能直接调用实例方法。
for循环与数组
for-each (素组可以使用for-each循环)
for(int num:nums){
}//每一次循环都会将被循环的变量的对应值赋给变量
Arrays(类)
-
equals(array a,array b)[返回值 Boolean] 比较两个素组是否相等,若长度,元素值相等(true) 在堆中的地址相等(true)
-
sort(array a) 将指定数组升序排列。
-
binarsearch(array,数值) 二分搜索查找
-
system.arraycopy(array a , int1, array b, int2, c)
a是原数组 b是要复制的目标数组 int 1 ,2 分别表示数组a b起始位置,c表示复制长度 两次copy 可以实现删除数组中某个元素
eg:
public String newarr() { int[] nums= {1,2,3,4,5,6};
int[] numsafter=new int[5];
System.arraycopy(nums, 0, numsafter, 0, 1);
System.arraycopy(nums, 2, numsafter, 1, 4);
String arr2=Arrays.toString(numsafter);
return arr2;
今日总结:对string对象内存分配机制不了解,自己下来查资料+实验 解决问题,已经习惯老师的讲课模式,感觉老师的进度适中。希望老师在第九章以后能在目前的基础上稍微放慢一点节奏。昨天的三道题虽然做完了 但是有的对,有的错,今天晚上再做了一遍。但是今天所学的知识晚上没怎么练习。晚上写代码遇到问题试着看了一下开发文档,还是能看懂,以后有时间看能不能试着挑战看英语的开发文档。
点赞
评论留言