java基础(二)
原本打算6月1号开始,一篇篇写的,虽然6月1号跟我没啥关系,好了,继续第二篇吧~~
数组
1.逆序方式,虽然已有方法实现,我还是比较较真,这些对理解已有方法还是有些作用的。
逆序
方式1:
public static int reverse(int[] arr) {
for(int x=0; x<arr.length/2; x++) {
int temp = arr[x];
arr[x] = arr[arr.length-1-x];
arr[arr.length-1-x] = temp;
}
}
方式2:
public static int reverse(int[] arr) {
for(int start=0,end=arr.length-1; start<=end; start++,end--) {
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
}
}
封装
- 影藏实现细节,提供公共的访问方式
- 作用
A:隐藏实现细节,提供公共的访问方式
B:提高代码的复用性
C:提高代码的安全性
3.private关键字:被private修饰的成员,只能在本类中被访问
继承
把多个类中相同的成员给提取出来定义到这个类中,然后让其他类与这个独立类产生一个关系
(1)继承的好处:
A:提高了代码的复用性
B:提高了代码的维护性
C:让类与类产生了一个关系,是多态的前提多态
(2)继承的弊端:
A:让类的耦合性增强。这样某个类的改变,就会影响其他和该类相关的类。
原则:低耦合,高内聚。
耦合:类与类的关系
内聚:自己完成某件事情的能力
B:打破了封装性
(3)继承的注意事项:
A:子类不能继承父类的私有成员
B:子类不能继承父类的构造方法,但是可以通过super去访问
多态
同一个对象在不同时刻体现出来的不同状态
(1)多态的前提:
A:有继承或者实现关系。
B:有方法重写。
C:有父类或者父接口引用指向子类对象。
(2)多态的好处:
A:提高代码的维护性(继承体现)
B:提高代码的扩展性(多态体现)
(3)多态的弊端:
父不能使用子的特有功能。
(3)多态中的成员访问特点
A:成员变量
编译看左边,运行看左边
B:构造方法
子类的构造都会默认访问父类构造
C:成员方法(由于成员方法有重写)
编译看左边,运行看右边
D:静态方法
编译看左边,运行看左边
构造方法
A:用于对对象的数据进行初始化
B:注意
1.方法名和类名相同
2.没有返回值类型,连void都不能有
3.没有返回值,但可以有有return;(因为在任何的void方法的最后都可以写上 return;)
C:在继承里,子类的构造方法会先去访问父类的构造方法(原因:为了子类访问父类数据的处所化),当然子类也可以明确用super去调用父类的有参构造
代码块
(1)局部代码块:用于限定变量的什么周期,及早释放,提高内存利用率。
(2)构造代码块:把多个构造方法中相同的代码可以放到这里,每个构造方法执行前,首先执行构造代码块。
(3)静态代码块:对类的数据进行初始化,仅仅只执行一次。
执行顺序:静态代码块 > 构造代码块 > 构造方法
方法重载和方法重写:
方法重载:同一类中,出现方法名相同,参数列表不同,与返回值无关。
方法重写:在子类中,出现和父类中一样的方法声明的现象