美文网首页
java学习第六天

java学习第六天

作者: toro宇 | 来源:发表于2020-01-09 17:25 被阅读0次

异常处理


数组越界 空指针 错误运算

异常处理机制

屏幕快照 2020-01-08 下午5.36.49.png
package day10;

public class Test1 {
public static void main(String[] args) {
    Test11 two = new Test11();
    try {
        two.test();
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
}

class Test11{
int i;
public void test() throws Exception{
    Test11 one = null;
    System.out.print(one.i);
}
}
屏幕快照 2020-01-09 上午9.53.16.png 屏幕快照 2020-01-09 上午10.14.25.png

java提供的异常类一般是够用了,只有特殊的情况可能需要自己编写异常类

集合

  // 如果想要让集合只能存同样类型的对象,怎么做
     //使用泛型
     Set<String> set1  = new HashSet<String>(); // 指定String为集合的泛型。 等号左边加的泛修饰的意思是在编译阶段就做限制。 右边是到运行时才生效的限制
     set1.add("df");   
package day10;
import java.util.Comparator;
public class Persion implements Comparator<Persion>  {
int age;
String name;
public Persion() {
}
public Persion(int age, String name) {
    this.age = age;
    this.name = name;
}
@Override
public int compare(Persion o1, Persion o2) {
    // TODO Auto-generated method stub
//      return 0;
    if(o1.age > o2.age) {
        return 1;
    }else if(o1.age < o2.age) {
        return -1;
    }else {
        return 0;
    }
}
}

Set<Persion> set3 = new TreeSet<Persion>(new Persion());
     set3.add(new Persion(12,"lishi"));
     set3.add(new Persion(30,"wangwu"));
     set3.add(new Persion(14,"ll"));
     set3.add(new Persion(8,"hel"));
     
     for(Persion p : set3) {
         System.out.println("姓名:" + p.name + "---" + "年龄:" + p.age);
     }

package day10;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Test4 {

public static void main(String[] args) {

List<Student> lists = new ArrayList<Student>();
lists.add(new Student("one",12));
lists.add(new Student("two",40));
lists.add(new Student("three",25));
lists.add(new Student("five",2));

for(Student t : lists) {
    System.out.println("name:" + t.name +"--"  + "age:" + t.age);
}
System.out.println("=======");
  Collections.sort(lists, new Paixu()); // 重新排序,传入要排序的集合及排序处理对象
for(Student t : lists) {
    System.out.println("name:" + t.name +"--"  + "age:" + t.age);
}
}
}

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

class Paixu implements Comparator<Student>{
@Override
public int compare(Student o1, Student o2) {
    // TODO Auto-generated method stub
    if(o1.age > o2.age) {
        return 1;
    }else if(o1.age < o2.age) {
        return -1;
        
    }
    return 0;
}
}
// 输入结果
name:one--age:12
name:two--age:40
name:three--age:25
name:five--age:2
=======
name:five--age:2
name:one--age:12
name:three--age:25
name:two--age:40

泛型

当我们定义一个类可以处理任意类型的数据时,由于任何类型的数据(Object)都可被传入,则会导致类型安全问题,并且进行数据处理时还要进行类型强转.所以 出现了泛型。用泛型定义可以接收任意类型的数据,而数据的类型,当具体操作时,根据当前操作数据的类型来具体定义即可。

泛型的使用

》泛型类



》泛型接口



public class Test6 {
public static void main(String[] args) {
    BI<String> bi = new BI<String>();
    bi.test("hh");
}
}

interface IB<T>{ // 泛型接口
T test(T t);
}

/**
 * 未传入泛型实参时,与泛型类的定义相同,在声明类的时候,需将泛型的声    明也一起加到类中
 *
 */
class BI<T> implements IB<T>{

@Override
public T test(T t) {
    // TODO Auto-generated method stub
    return t;
}

}

/**
 * 传入泛型实参
 */

class BI2 implements IB<String>{

@Override
public String test(String t) {
    // TODO Auto-generated method stub
    return null;
}

}

》泛型方法



泛型方法,在调用之前没有固定的数据类型,在调用时,传入的参数是什么类型,就会把泛型改成什么类型

通配符

枚举




枚举类中的每个枚举都是单例模式的

注解


相关文章

  • java学习day06-面向对象认识

    java学习第六天内容总结: 学习内容: 关注公众号:java进阶架构师,获取的学习视频 总结: 1、软件生命周期...

  • java基础知识第六天

    Java学习第六天 一. 一维数组 1. 定义格式及初始化:int[] arr=new int[3];(静态初始)...

  • 学习Java第六天

    面向对象的特征: 封装 继承 多态 封装是指对象的实现细节隐藏起来,然后通过公共的方法来向外暴露该对象的功能。 继...

  • java学习第六天

    异常处理 异常处理机制 java提供的异常类一般是够用了,只有特殊的情况可能需要自己编写异常类 集合 泛型 当我们...

  • Java,从耳闻到相识

    今天是我接手《Java程序设计基础(第五版)》这本书的第六天。经过了为期五天的学习,我对Java也是有了初步认识和...

  • 刻意练习90-1-6

    今天是第六天,是记录90天计划的第六天,也是学习游泳的第六天。 昨天学习到蛙泳的难点,今天继续练习,教练给出的建议...

  • 第六天学习Java(循环语句)

    当笑容爬上你的脸庞,连太阳也会妒忌你的光芒。新的一周,记得给自己一个微笑。 局部变量 概念:声明在函数内部的变量,...

  • 全新Java学习完整路线图

    Java教程,Java学习,Java学习路线图,全新Java学习路线图! 深知广大爱好Java的人学习是多么困难,...

  • 2018-08-04

    今天是学习java的第六天,考核的期限越来越近,看着他人的进度,我和他们的落差真的很大,当别人早早地把书看完了,可...

  • 零基础学java的最佳学习方法和最全java知识大纲

    目录: 一、学习java的前提 二、学习java的方法 三、学习java时的坑 四、学习java的路线(画重点) ...

网友评论

      本文标题:java学习第六天

      本文链接:https://www.haomeiwen.com/subject/zdpsactx.html