长春人文学院第四组孙乃宇https://www.cnblogs.com/sunnaiyu/继承
作者:互联网
final关键字:最终的,终极的
*
* final可以修饰的结构
* 1.类 public final class
* 最终类,终极类
*
* 2.属性 private final String name;
* 常量:不能重新赋值
* 常量的命名规则:单词的所有字母都要大写,如果时多个单词,用下划线分开
* 常量不能只声明不赋值
* 3.方法:private final void show(){}
* 不能被重写
*
* 方法的重写
* @Override注解:
* 我们建议在方法的重写处来表明重写的注解
继承后特点--成员变量(理解)
3.1
成员变量不重名 如果子类父类中出现 了不重名成员变量,对使用是没有影响的。
3.2
成员变量重名 如果子类父类中出现 了重名成员变量,需要使用super关键字和this关键字 super->父类的成员变量-》super.父类成员变量 this ->子类的成员变量 -》this.子类的成员变量
3.2.1
私有属性 父类成员变量是私有的,子类不能直接访问,必须要通过父类公开的setter/getter方法访问
public void show(){
super.sex="男";//父类的属性
this.sex="女";//子类的属性
//super.age;
super.getAge();//调用父类get方法,获得父类私有属性
super.setAge(55);//调用父类et方法,给父类私有属性赋值
}
进入练习:
public class Ch02 extends Father {
/*
* final关键字:最终的,终极的
*
* final可以修饰的结构
* 1.类 public final class
* 最终类,终极类
*
* 2.属性 private final String name;
* 常量:不能重新赋值
* 常量的命名规则:单词的所有字母都要大写,如果时多个单词,用下划线分开
* 常量不能只声明不赋值
* 3.方法:private final void show(){}
* 不能被重写
*
* 方法的重写
* @Override注解:
* 我们建议在方法的重写处来表明重写的注解 * */
private final String EMPLOYEE_NAME="哈哈";
public Ch02(String name){
}
//注解
@Override
public void info() {
}
//测试类
package com.sunnaiyu.Test3;
import sun.util.locale.provider.FallbackLocaleProviderAdapter;
import java.util.ArrayList;
/*
超级数组
*/
public class SuperArray {
//数组
//维护一个数组,要考虑的是怎么存。
private Integer[] array;
//超级数组的长度
private int size;
//数组当前的容量
private int capacity;
public SuperArray() {
this(10);
}
public SuperArray(int capacity) {
array = new Integer[capacity];
this.capacity = capacity;
}
//添加数据,默认添加,在数组的尾部添加
public boolean add(Integer data) {
//添加时要确保容量足够。如果不够就需要扩容
ensureCapacity(size + 1);
//真正的添加数据
array[size++] = data;
return true;
}
//添加数据,传入两个参数
//在指定位置添加
public void add(int index, Integer data) {
ensureCapacity(size + 1);
System.arraycopy(array, index, array, index + 1, size - index);
array[index] = data;
size++;
}
//获取超级数组的长度
public int size() {
return size;
}
//获取指定下标的元素
public Integer get(int index) {
//判断index的合法性
if (rangeCheck(index)) {
return array[index];
} else {
throw new ArrayIndexOutOfBoundsException("");
}
}
private boolean rangeCheck(int index) {
//index>=0
//index<size
return (index >= 0 && index < size);
}
//这个方法只在当前类中使用,所以声明private
private void ensureCapacity(int needCapacity) {
//System.out.println(needCapacity + "--------" + capacity);
capacity = capacity + 1;
//创建一个新的已经扩容好的数组
Integer[] newArray = new Integer[capacity];
//把元数组中的元素拷贝过来
/*src:原数组
* srcPos:拷贝原始数组起始位置
* dest:目标数组
* destPos:目标数组的起始位置
* length:拷贝数据的长度*/
System.arraycopy(array, 0, newArray, 0, array.length);
array = newArray;
}
public boolean delete(int index) {
if(index<0||index>array.length-1){
return false;
}
for (int i = index; i < array.length - 1; i++) {
array[i] = array[i + 1];
}
// 最后一位数据赋值为0,占位,同时告知用户这是一个无效数据
array[array.length - 1] = null;
return true;
}
public boolean update(int index,int sum){
if(index<0||index>array.length-1){
return false;
}else {
array[index]=sum;
return true;
}
}
public Integer[] getArray() {
return array;
}
}
学习心得:
今日老师讲了继承中的final和重写,还做了练习,经过了一天的学习,学会了很多的东西,收获满满。
标签:index,www,int,array,private,final,人文学院,第四组,public 来源: https://www.cnblogs.com/sunnaiyu/p/16512998.html