zoukankan      html  css  js  c++  java
  • 010.day08

    day08笔记

    一、二维数组

    一维数组中的元素为一维数组,需要借助双重for循环结构进行遍历

    1. 声明方式

    // 数据(引用)类型[][] 变量名称
    int[][] a;
    int a[][];
    

    2. 初始化方式

    • 动态初始化:必须为一维数组指定长度,第二维(内部数组元素)可以在使用时再进行初始化,长度不需要完全相等
    // 等长情况
    int[][] a = new int[3][3];
    // 不等长情况
    int[][] a = new int[3][];
    // 上述写法不会造成空间浪费,在使用前必须进行初始化
    a[0] = new int[1];
    a[1] = new int[2];
    a[2] = new int[3];
    
    • 静态初始化:需要使用嵌套的大括号形式进行赋值,会根据元素个数自动计算长度
    int[][] a = new int[][] {{1,2,3},{6,2,8},{4,5}};
    

    二、foreach

    类似于迭代器的方式实现,其中的元素为引用的传递

    • 主要用于集合的遍历
    • 尽量避免修改(删除/新增)集合元素
    • 可以嵌套使用
    • 对于临时变量的操作不会作用在集合本身
    • foreach中获取到的元素为一个传递后的对象,不会对原始元素产生影响

    三、继承

    将某些类中的共同属性抽取出来,作为基类(父类),然后继承这个类,子类可以直接使用父类中的属性及方法(protected声明)

    1. 关键字:extends

    2. 父类的实例化

    当成一个普通的类,只能调用自身的属性和方法

    Person person = new Person;
    

    3. 子类的实例化

    可以调用父类中提供的属性或方法,也可以调用自身的属性和方法,在内存中会开辟一整块空间(含父类和子类),在实例化子类对象时,也会执行父类的构造方法

    // Teacher类和Student类继承Person
    Teacher teacher = new Teacher();
    Student student = new Student();
    

    • 子类对象实例化时会调用父类的构造方法
    • 子类的引用可以直接赋值(传递)给父类引用

    4.父类引用指向子类对象

    使用父类的对象进行声明,指向子类的实例,在编写代码时,遵从父类的定义约束,执行方法时以实例为准,如果存在同名的方法,执行子类中的方法

    Person person = new Teacher();
    

    5. 子父类间的类型转换

    只需要看等号左边占用的内存是否小于等号右边占用的内存

    6.传参灵活

    // Teacher类继承Person类
    	Teacher teacher = (Teacher)person;
    // 当person向下转型为Teacher之后,如果要用person中私有的属性不能直接·,但是可以通过getxxx方法获得
    	System.out.println(teacher.getName());
    

    四、异常分类

    1. 编译时异常

    编译时能够校验的异常,通常只能根据类型和定义(等号左侧的声明)进行校验

    short a = 5;
    short b = a + 5;//此时认为等号右侧为int类型,无法隐式转换为short类型
    short b = (short)(a + 5);// 需要强制转换为short类型,可以消除编译时异常,如果出现异常,则出现在运行期
    

    2. 运行时异常

    程序运行时出现的异常,通常为严重错误,如空指针,越界,类型转换异常

    Father father = new Father();
    Child child = new Child();
    child = (Child)father;// 使用强制转换可以消除编译时异常,但在运行时仍然会抛出异常,一个子类的引用无法指向一个父类的实例
    

    五丶instanceof

    我们可以通过instanceof关键字来判断某个对象是否属于某种数据类型。如学生的对象属于学生类,学生的对象也属于人类。

    使用格式:

    boolean b = 对象 instanceof 数据类型;

    Person p1 = new Student(); // 前提条件,学生类已经继承了人类
    Person p2 = new Student();
    
    boolean flag = p1 instanceof Student; //flag结果为true
    
    boolean flag2 = p2 instanceof Teacher; //flag结果为false
    
    
  • 相关阅读:
    微软产品的安全漏洞
    C++中的访问级别
    不是每一滴牛奶都叫特伦苏
    友元关系
    友元关系
    C++中的访问级别
    基类和子类
    基类和子类
    《那些年啊,那些事——一个程序员的奋斗史》——63
    《那些年啊,那些事——一个程序员的奋斗史》——66
  • 原文地址:https://www.cnblogs.com/yokii/p/9358582.html
Copyright © 2011-2022 走看看