ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

长春人文学院第四组孙乃宇https://www.cnblogs.com/sunnaiyu/继承

2022-07-23 21:05:07  阅读:328  来源: 互联网

标签:index www int array private final 人文学院 第四组 public


 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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有