zoukankan      html  css  js  c++  java
  • java基础复习记录

    java基础复习记录(数组、对象、异常)

    数组

    数组的定义

    数组是相同类型数据的有序集合。如:篮球队就是一个数组,队员球服上有号码,相当于索引。通过某一个的某一个号码来确认是某一个队员。数组中索引从0开始。

    数组创建声明

    1、首先必须声明数组变量,一下为声明数组变量的语法:

    dataType[] arrayRefVar; // 使用首选
    或
    dateType arrayRefVar[]; // 一般不用
    
    int[] a; //创建变量名为a,数组类型为int的数组
    
    int a[];
    

    2、java语言使用new操作符了创建数组,语法如下:

    dataType[] arrayRefVar = new dataTye[arraySize];
    
    int[] a = new int[5]; // 创建长度为5的int类型数组
    

    3、数组元素通过索引访问,数组索引从0开始。

    4、获取数组长度。

    arrays.length

    数组基本特征

    1、长度确定。一旦被创建,大小长度不可改变。

    2、同一个数组的元素类型必须相同。

    3、数组的类型可以是任何数组类型。

    4、 数组的对象本身的堆中。

    内存分析

    1、内存分三部分:堆、栈、方法区

    2、堆:存放new出来的对象和数组

    3、存放基本变量类型,应用对象的变量

    4、方法区:可以被所有线程共享,包括所有的class和static变量

    生成数组的三步骤

    1、声明数组

    2、创建数组

    3、初始化

    稀疏数组

    面向对象

    java核心思想面向对象变成(OOP),面向对象:OO。

    什么是面向对象

    面向对象和面向过程

    1、面向过程思想(微观操作):

    ​ 做一件事情的步骤安排和规划,如:建筑第一步要挖机来挖地基、第二步要切砖师来切砖,第三步要水泥公司拉水泥来封顶。每一步都要详细规划。

    2、面向对象思想(宏观把控):

    ​ 要有分类的思维模式,进行抽象。思考首先要解决那些分类,然后对这些分类进行单独思考,最后才对某个分类下的细节进行面向过程的思考。如:总设计师对建筑进行设计,这栋要多少平米,地基多深,每个房子的构架怎么样等等。这些还没开工前就要提前想好整栋建筑的建法,和安排谁进行工作。

    抽象

    如:学生都有并且肯定有学号、班级等信息,可以抽象出来,学生的类就有学号、班级等。

    如:人都一定会有性别、姓名等信息,抽象出来,人的类可以有的属性为性别、姓名等。

    三大特征

    封装:如:饮水器里的水,将水封装起来避免里与空气中的尘土接触而受污染,提供接口使用。

    继承:如:儿子继承父亲的所有东西(财产)。

    多态:如:同样是学习,有的人是学霸、有的人是学渣。同样的行为动作却有不同的形态。

    类与对象

    类是对某一分类的描述,对象是具体的事物。

    如:对人的描述人有性别、姓名、年龄。通过这些信息你只能知道人都共有的一些属性。

    对象:性别男、姓名周勇、年龄18。通过这些信息,你就能够确定是到是谁。

    构造器

    1、构造器要求方法名与类名一样,没有返回类型,void也不能写有

    2、作用:赋初始值,可以在构造器中设置初始值。

    3、一般系统默认生成无参构造。

    4、有参构造一般在new是输入参数使用有参构造。

    内存分析

    封装

    1、封装追求高内聚、低耦合。

    2、属性私有,get/set

    代码

    1、封装类中使用private(私有)修饰属性后,在外部将无法通过对象点属性获取数据值。

    2、封装后提供get和set方法,get方法获取封装类的值,set方法设置封装类的值。

    3、作用:通过set方法设置范围:,如:人的年龄大于是1~120岁,可以在set方法中设置,如果超出这个范围,则错误。

    public void setAge(int age) {
        if (120 >= age && age > 0) {
            this.age = age;
        } else {
            System.out.println("输入错误:");
        }
    }
    

    封装的意义

    1、提高程序安全性,保护数据

    2、隐藏代码的实现细节

    3、同意接口

    4、系统可维护性增加了

    继承

    1、继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模

    2、extends的意思是“扩展”。子类是父类的扩展。

    3、java中类只有单继承,没有多继承。

    4、private私有的无法被继承

    super和this

    1、super指向继承的父类

    2、this指向类自己本身

    注意点:

    super注意点:

    1、super调用父类的构造方法,必须在构造方法的第一个

    2、super必须只能出现在子类的方法或者构造方法中。

    3、super和this不能同时调用构造方法。

    定义一个有参构造同时也必须要定义一个无参构造,否则会报错。

    方法重写

    重写方法:需要有继承关系,子类重写父类的功能。

    1、方法名必须相同

    2、参数列表必须相同

    3、修饰符:范围可扩大,但不能缩小。

    4、抛出的异常:范围,可以被缩小,但不能扩大;classNotFoundException -->Exception(大)

    重写的原因

    1、父类的功能,子类不一定需要,或者不一定满足。

    不能重写的方法

    1、static 方法,属于类,它不属于实例。

    2、final 常量;

    3、private 方法。

    多态

    存在条件

    1、有继承关系

    2、子类重写父类方法

    3、父类引用指向子类对象

    编码:

    1、父类引用指向子类

    2、能调用子类重写的方法,调用到的是子类的方法

    3、不能调用子类特有方法

    4、可以调用父类自己定义的方法

    instanceof和类型转换

    instanceof (类型转换) 引用类型,判断一个对象是什么类型

    instanceof 有父子关系就OK,没有父子关系就不行

    抽象类

    1、使用abstract修饰的类就是抽象类。

    public abstract class Action(){...}
    

    2、我定义了这个方法,但又不想去实现,可以使用抽象方法。抽象方法,只有方法名称,没有方法实现。

    public abstract void doSomething();
    

    3、抽象类的所有方法,继承了它的子类,子类必须实现抽象类的方法

    4、作用:提高开发效率。如:要创建一个游戏角色,我们不可能从无到有创建,应该是在游戏所有英雄都有的特征上进行赋值。抽象出所有英雄都有的特征。

    static

    1、静态变量可以共享,直接就可以调用,不需要new后才能使用。

    执行顺序:

    1、首先执行static代码块

    2、其次执行匿名代码块

    3、然后执行构造方法

    接口和实现定义

    内部类

    知识扩展

    异常

    1、异常体系结构,最高层是Throwable,

    Error:虚拟机运行操作错误,一般与执行者无关。

    Exception:一般是个人编码问题造成。

    常见的错误有:

    异常处理的五个关键字

    代码

    定义异常

    这次的学习记录主要用于有基础的同学巩固和回顾基础。

    学习观看的视频为:狂神说java零基础学习

  • 相关阅读:
    TI达芬奇平台测试
    V4L2 常用控制命令
    Linux 线程编程
    HMM
    PCA & ICA
    SVD分解(转载)
    Factor analysis
    Mixtures of Gaussians and the EM algorithm
    Arduino 单个按键控制led灯闪烁、常亮、关闭
    django计算当前日期最近一周日期范围
  • 原文地址:https://www.cnblogs.com/zhouyongyin/p/12683597.html
Copyright © 2011-2022 走看看