• Java学习历程记录(一)


    一、类与对象


    1、创建类

    创建一个学生类、并且创造成员变量和方法

    public class student{
      String name;
      int age;
      public void study(参数列表){
        …………
      }
    }
    

    2、对象的使用

    注:new 出来的东西都在堆当中

    类名 对象名 = new 类名();
    例:student stu = new student();
    

    3、使用对象访问成员

    访问成员方法:   对象.成员方法();
    例: stu.study();
    访问成员变量:   对象.成员变量;
    例: stu.name;
    

    二、封装

    1、private关键字

    private 数据类型 变量名;
    

    2、如何访问成员变量

    提供getXxx、setXxx方法
    例:
      public class student{
        private String name;
        private int age;
        
      public void setName(String n){
        name = n;
      }
      public String getName(){
        return name;
      }
      public void setAge(int a){
        age = a;
      }
      public int getName(){
        return age;
      }
    }
    

    3、封装优化(一)之this关键字

    注:this代表所在类的当前对象的引用(地址值);即谁在调用,就代表谁

    public class student{
      private String name;
      private int age;
      
      public void setName(String name){
      this.name = name;
    }
      public String getName(){
        return name;
      }
      public void setAge(int age){
        this.age = age;
      }
      public int age(){
        return age;
      }
    }
    

    4、封装优化(二)之构造方法

    注:当一个对象初始化时,构造方法用来初始化该对象,给对象的成员变量赋初值。

    且构造方法的类名与它所在类名相同,且没有返回值类型,且不需要void。

    public class student{
      private String name;
      private int age;
      
    public student(){}
    public student(String name,int age){
      this.name = name;
      this.age = age;
    } 
    }
    

    5、构造方法的注意事项以及标准代码

    注意事项:

    1. 如果你不提供构造方法,系统会自动给出一个无参构造方法。
    2. 如果你写了构造方法,系统不再提供无参构造方法。
    3. 构造方法是可以重载的,既可以定义参数,也可以不定义参数

    标准代码——JavaBean:

    它是Java语言编写类的一种标准规范,符合JavaBean的类必须是具体的且公共的,并且具有无参构造方法,提供用来操作成员变量的getXxx和setXxx方法。

    public class student{
      //成员变量
      private String name;
      private int age;
      //构造方法
      public student(){}
      public student(String name,int age){
        this.name = name;
        this.age = age;
      }
      //成员方法
      public void setName(String name){
        this.name = name;
      }
      public String getName(){
        return name;
      }
      public void setAge(int age){
        this.age = age;
      }
      public int getAge(){
        return age;
      }
    }
    

    三、Scanner类

    1、具体实现

    //导包
    import java.util.Scanner;
    public class student{
      public static void main(String[] args){
        //创建一个键盘录入数据的对象
        Scanner sc = new Scanner(System.in);
        //System.in 表示通过键盘录入数据
        
        int a = sc.nextInt();
        //表示通过对象来调用成员方法
        //nextInt 表示将下一条标记为int
        String b = sc.next();
        //查找并返回扫描仪的下一个完整令牌
      }
    }
    

    2、匿名对象

    new Scanner(System.in).nextInt();
    

    注意事项:

    创建匿名对象直接调用方法,并没有变量名

    一旦调用了两次方法,就创建了两个对象,导致空间的浪费

    匿名对象也可以作为方法的参数和返回值列表


    四、Random类

    1、具体实现

    //导包
    import java.util.Random;
    public class student{
      public static void main(String[] args){
        Random r = new Random();
        //产生一百以内的随机数
        for(int i=0;i<100;i++){
          int num = r.nextInt();
          //每调用一次nextInt方法,就会出现一个新的随机数
          System.out.println("随机数:"+ num );
        }
      }
    } 
    

    五、ArrayList类

    1、具体实现

    //导包
    import java.util.ArrayList;
    public class student(){
      public static void main(String[] args){
        //创建一个数组
        ArrayList<String> list = new ArrayList<>();
        //从JDK7之后,右侧泛型可以留空,但“<>”必须写上
        
        //创建学生对象
        String n1 ="小杜";
        String n2 ="小王";
        String n3 ="小张";
        
        //把创建的学生元素添加到集合当中,利用ArrayList这个类的方法
        list.add(n1);
        list.add(n2);
        list.add(n3);
        System.out.println(list);
        //最后打印输出
        
      }
    }
    

    2、常用的方法

    public boolean add(E e);将指定的元素添加到此集合的尾部

    public E remove(int index);移除把此集合中指定位置的元素,返回被删除的元素

    public E get (index);返回此集合中指定位置的元素,返回获取的元素

    public int size();返回此集合中的元素数,遍历集合时可以控制索引范围,防止越界。


    六、String类

    1、特点

    • 字符串的值在创建之后不可改变。
    • 因为字符串String对象是不可变的,所以它们可以被共享。
    • "abc" = char[] data{"a","b","c"}

    2、常用的方法

    判断功能的方法:equals和equalsIgnoreCase

    获取功能的方法:length、concat、charAt、indexOf、subString

    转换功能的方法:tocharArray、getByte、replace

    分割功能的方法:split


    七、static关键字

    静态方法

    静态原理

    静态代码块


    八、Array类

    1、操作数组的方法

    public static String toString;返回指定数组内容的字符串表示形式。

    public static void sort();对指定的数组进行升序排列;


    九、Math类

    1、基本运算方法

    public static double abs();返回double数值的绝对值

    public static double ceil();返回大于等于参数的最小整数


    十、继承

    1、概述

    :其中多个类可称为子类,单独的一个类可以称为父类、超类或者基类

    2、表示形式:

    class 子类 extends 父类{……}

    3、成员方法重写

    @override

    4、继承后的特点——构造方法

    5、super和this关键字

    6、继承的特点:

    • 继承只支持单继承,不支持多继承。
    • 继承可以多层继承(有体系结构)
    • 子类和父类是相对概念

    十一、抽象类

    1、表示形式

    注:修饰符和参数列表要注意

    抽象类:public abstract class 类名{}

    抽象方法:public abstract void 方法名();

    2、注意事项

    • 抽象类不能创建对象,也就是不能实例化,否则编译不通过,但是可以创建子类继承
    • 抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的
    • 抽象类中不一定有抽象方法,但有抽象方法的一定是抽象类
    • 抽象类的子类必须重写父类的所有方法,否则编译也不通过,除非子类也是抽象类

    十二、接口

    1、定义与实现方式

    public interface 接口名{}

    class 类名 implments 接口名{

    //重写接口中的抽象方法(必须)

    //重写接口中的默认方法(可选)

    }

    2、基本实现和多实现

    注:类与接口的关系是实现关系,即类实现接口,该类可以称为接口的实现类或者子类

    抽象方法

    默认方法

    静态方法

    私有方法


    十三、多态

    1、体现

    父类类型 变量名 = new 子类对象;

    2、向上转型和向下转型

    向上转型:父类类型 变量名 = new 子类对象;

    向下转型:父类类型 变量名 = (子类类型) 子类对象;


    十四、final关键字


    十五、权限修饰符


    十六、内部类

    1、概念

    :如果在A类中新建一个B类,那么就称B类是内部类,A类是外部类

    2、访问特点

    • 内部类可以访问外部类成员,包括私有方法
    • 外部类要想访问内部类,必须得新建一个内部类的对象

    3、匿名内部类(重点)

    • 是内部类的简化写法——new 父类名或接口名();
    • 匿名内部类必须是实现一个父接口或者继承一个父类
    • 也可以做为函数参数传递

    十七、引用类型用法

    1、class做为成员变量

    2、interface做为成员变量

    3、interface做为方法参数与返回值类型


    十八、Object类、时期时间类

    1、Object类

    2、Date类

    常用方法:

    public long getTime() ;把日期时间转换成对应毫秒值

    3、DateFormat类

    常用方法:

    public String format();把日期格式化字符串

    public Date parse();把字符串转换成为Date对象

    4、Calendar类

    常用方法:

    get和set方法

    add和getTime方法


    十九、System类

    1、常用方法:

    currentTimeMills方法

    获取当前系统时间与1970年01月01日00:00点之间的毫秒差值

    arraycopy方法

    将数组中指定的数据拷贝到另一个数组中。


    二十、StringBuilder类

    1、常用方法

    append方法:添加任意类型数据的字符串形式,并返回当前对象自身

    toString方法:将当前StringBuilder对象转换为String对象


    二十一、包装类

    基本类型 java.lang中的包装类
    byte Byte
    short Short
    int Integer
    long Long
    float Float
    double Double
    char Character
    boolean Boolean

    注:从JDK5开始就自动完成装箱和拆箱动作


    二十二、Collection接口

    1、集合类的继承体系

    图片

    2、Collection常用功能

    • public boolean add(E e): 把给定的对象添加到当前集合中 。
    • public void clear():清空集合中所有的元素。
    • public boolean remove(E e): 把给定的对象在当前集合中删除。
    • public boolean contains(E e): 判断当前集合中是否包含给定的对象。
    • public boolean isEmpty(): 判断当前集合是否为空。
    • public int size(): 返回集合中元素的个数。
    • public Object[] toArray(): 把集合中的元素,存储到数组中。

    List集合

    1、常用方法

    get、add、remove、set方法

    2、List子类

    • ArrayList集合
    • LinkList集合

    Set接口

    1、两个集合

    • HashSet集合
    • LinkedHashSet集合

    Colletions集合工具类


    二十三、Map集合

    1、常用的集合

    • HashMap集合
    • LinkedHashMap集合

    2、Map接口中常用的方法

    • public V put(K key, V value): 把指定的键与指定的值添加到Map集合中。
    • public V remove(Object key): 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值。
    • public V get(Object key)根据指定的键,在Map集合中获取对应的值。
    • boolean containsKey(Object key)判断集合中是否包含指定的键。
    • public Set<K> keySet(): 获取Map集合中所有的键,存储到Set集合中
    • public Set<Map.Entry<K,V>> entrySet(): 获取到Map集合中所有的键值对对象的集合(Set集合)。

    二十四、泛型

    1、定义格式

    修饰符 class 类名<代表泛型的变量> {  }


    二十五、Iterator迭代器

    1、常用方法

    public E next();返回迭代的下一个元素。

    public boolean hasNext() ;如果任有元素要返回的话,则返回ture


    二十六、异常

    1、异常体系

    :异常的的根类是java.lang.throwable,其下有两个子类java.lang.Exception和java.lang.Erro

    图片

    2、异常处理

    • 抛出异常throw
    使用格式: 在方法内——thorw new 异常类名(参数)
    
    • Objects非空判断
    public static <T> T requireNonNull(T obj):查看指定引用对象不是null
    
    • 声明异常throws
    修饰符 返回值类型 方法名(参数) throws 异常类名1,异常类名2…{   }	
    
    • 捕获异常try……catch
    try{
         编写可能会出现异常的代码
    }catch(异常类型  e){
         处理异常的代码
         //记录日志/打印异常信息/继续抛出异常
    }
    

    图片

    • finally代码块

    3、异常注意事项

    1. 多个异常分别处理。
    2. 多个异常一次捕获,多次处理。
    3. 多个异常一次捕获一次处理
    • 运行时异常被抛出可以不处理。即不捕获也不声明抛出。
    • 如果finally有return语句,永远返回finally中的结果,避免该情况.
    • 如果父类抛出了多个异常,子类重写父类方法时,抛出和父类相同的异常或者是父类异常的子类或者不抛出异常
    • 父类方法没有抛出异常,子类重写父类该方法时也不可抛出异常。此时子类产生该异常,只能捕获处理,不能声明抛出

    4、自定义异常

    二十七、线程

    1、线程与进程

    2、并发与并行

    后继

    Lambda表达式、反射、注解、IO流

    无论人生上到哪一层台阶,阶下有人在仰望你,阶上亦有人在俯视你。你抬头自卑,低头自得,唯有平视,才能看见真实的自己
  • 相关阅读:
    java并发编程——Excutor
    java并发编程——BlockingQueue
    const int *p和int * const p的区别(常量指针与指向常量的指针)
    C语言 enum作为函数返回值及函数参数
    (void)0;
    浅析IAR环境下Flash loader工作原理 (转)
    xilinx zcu106 vcu demo
    flashloader速度提升
    typora--简洁的markdown编辑器
    vivado 2019.2 工程修改文件夹名称后引起的一系列问题
  • 原文地址:https://www.cnblogs.com/yuyueq/p/13564181.html
Copyright © 2020-2023  润新知