栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

每日打卡 2021.10.15

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

每日打卡 2021.10.15

数组
  • 数组对象本身是在堆中的

  • 有序,相同类型数据

数组的使用 Arrays类
  • java.util.Arrays

  • 常用

    • fill

    • sort

    • equals

    • binarySearch

稀疏数组
  • 行号,列号,不同的值

面向对象

Java的核心思想:OOP(Object-Oriented Programming,OOP)

  • 分类,一类物具有一些相同的方法或功能

  • 以类的方法组织代码,以对象的组织(封装)数据

  • 抽象

Java三大特征

  • 封装

  • 继承

  • 多态

方法的调用
  1. 静态方法(static)

    • 可以直接使用类名调用

    • 和类一起加载

  2. 非静态方法(无static) 实例化对象才可以调用

类是一种抽象的数据类型,不能代表某一个具体事务

对象是抽象概念的具体实例

  • 类实例化后会返回一个自己的对象

使用new关键字创建---->分配内存空间 + 默认的初始化 + 类中构造器的调用(构造方法)

构造器

  • 一个类即使什么都不写,也会存在一个构造器

  • 构造方法与类名相同

  • 不能有返回值

  • 实例化初始值(this.属性 = 初始值)

  • 有参构造和无参构造(一旦定义了有参构造,无参构造就必须显示定义)

  • alt + insert 快速构造(IDEA)

简单的内存分析

封装

高内聚,低耦合

  • 对属性私有使用,保证了高内聚

  • 提供一些public的 get,set方法获得或设置这些属性值

封装提高了程序的可维护性,也避免了外界直接改变程序关键的数据

方法重载

相同名称,不同参数

继承

对某一批类的抽象,java只有单继承,extends

  • 子类是对父类的拓展

  • Ctrl+H可以展示目前该类的父类和子类(IDEA)

  • java中所有的类都默认继承object类

  • 私有的东西无法被继承

super
  1. super用于调用父类中的构造方法

  2. super必须在子类的方法或构造中

  3. 调用父类的构造器必须在子类构造器的第一行

  4. super和this不能同时调用构造方法

方法重写
  • 方法名必须相同

  • 参数列表必须相同

  • 返回类型必须相同

  • 非静态方法的调用才可以重写

  • 修饰符范围可以扩大 public>Protected>Default>private,但是不能缩小

  • 抛出的异常 范围也是可以被缩小,不能被扩大


多态

动态编译(可扩展性)

  • 父类型的引用可以指向子类对象(Father f1 = new Son();):

public class Application {
    public static void main(String[] args) {
        //一个对象的实际类型是确定的
        //可以指向的引用类型就不确定了,父类的引用可以指向子类
        Student s1 = new Student();
        Person s2 = new Student();
        Object s3 = new Student();
        //对象能执行那些方法,主要看对象左边的类型,和右边关系不大
        //父类型可以指向子类,但是不能调用子类独有的方法
    }
}

  • 多态是方法的多态

  • 前提是父类和子类之间的多态

  • 方法重写过了才有意义

  • instanceof(类型转换)

静态

静态变量和静态方法

  • 静态方法不能调用非静态方法,反之可以

  • 静态变量可以用类名直接提取(jvm实现)

静态代码块和匿名代码块

  • 匿名代码块

    • 不能主动调用

  • 静态代码块

    • 加载即执行(永久只执行一次)

加载顺序:静态代码块(只执行一次)-->匿名代码块-->构造方法

静态导入包

抽象类
  • abstract 修饰的类

  • 抽象类只能靠子类去实现

  • 抽象类里面可以写普通方法(抽象方法必须在抽象类中)

  • 抽象的抽象:约束

public abstract class Action {
    public static void main(String[] args) {
​
    }
​
    //约束,有人帮我们实现
    //抽象方法,只有方法名字,没有实现方法
    //抽象类的所有方法,继承了他的子类都必须要实现他的方法,除非子类也是抽象类
    //接口可以多继承
    public abstract void doSomething();
​
}
接口
  • 接口就是规范,定义的是一组规则

  • 接口的本质是契约

  • public interface UserService {
        public  abstract  void add(String name);
    ​
    }
  • 类可以实现接口

    • 实现了接口的类,必须要重写接口中的方法

    • public class UserServiceImpl implements UserService,Timer{
          @Override
          public void add(String name) {
      ​
          }
      ​
          @Override
          public void Change() {
      ​
          }
      }
  1. 约束作用

  2. 定义一些方法,让不同的人实现

  3. 方法都是public abstract

  4. public static final

  5. 不能被实例化(没有构造方法)

  6. 可以实现多个接口

内部类
  1. 外部类

  2. 内部类

  3. 静态内部类(无法直接访问非静态的属性)

  4. 局部内部类

  5. 匿名内部类

  6. 一个java类只有一个public class

异常

error 和 Exception

  • error

    • 由java虚拟机抛出

    • 无内存资源时,OutOfMemoryError,此时JVM选择线程终止

  • Exception

    • 由程序逻辑错误引起

抛出异常和捕获异常

  • 异常处理

    • try catch finally

    • throw/throws(在方法中用)

  • 自定义异常类

  • package com.wang.OOP;
    ​
    public class MyException extends Exception{
        private int detail;
        public MyException(int a){
            this.detail = a;
        }
        //异常的打印信息
        public String toString(){
            return "MyException{"+"detail="+detail+'}';
        }
    }
    ​
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/327886.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号