【编程语言】Java4

【编程语言】Java5

【编程语言】Java6

day11

为什么要有泛型?

 

泛型的使用:泛型类

自己定义一个泛型类

/*
此次的泛型T可以任意的取名,A,B,V
一般使用T,意义为type
 */
public class A<T> {
    private T key;
    
    public void setKey(T key){
        this.key = key;
    }
    
    public T getKey(){
        return this.key;
    }
}

什么都不写<string,int>,则是object类型

泛型的使用:2泛型接口

如果已经传入实参了呢?

B1 B2用起来什么区别呢?(B2已经确定好了是string)

但是最主要的还是实现接口的差别

泛型的使用:3泛型方法

如果是带泛型的类

调用

泛型通配符

有限制的通配符

1、

调用

2、

3、接口

在class Dd里。

枚举类

深入理解Java枚举类型(enum)

原有的方法:(单例模式?忘了)

public class Season1 {
    private final String NAME;
    private final String DESC;

    final static Season1 spring = new Season1("春天", "春暖花开");
    final static Season1 summer = new Season1("夏天", "炎炎夏日");
    final static Season1 autumn = new Season1("秋天", "秋高气爽");
    final static Season1 winter = new Season1("冬天", "寒风凛冽");

    private Season1(String name, String desc){
        this.NAME = name;
        this.DESC = desc;
        System.out.println(this.NAME + ": " + this.DESC);
    }

    public static Season1 getSpring(){
        return spring;
    }

    public static Season1 getSummer(){
        return summer;
    }
}
public class Test {
    public static void main(String[] args) {
        Season1.getSpring();
        Season1.getSummer();
    }
}
/*
春天: 春暖花开
夏天: 炎炎夏日
秋天: 秋高气爽
冬天: 寒风凛冽
 */

使用enum定义枚举类

enum Season{
    //每一个小的枚举,都是在调用构造方法。返回的是枚举对象
    //此处相当于在调用有参的私有构造private Season(String name, String desc)
    SPRING("春天", "春暖花开"),
    SUMMER("夏天", "炎炎夏日"),
    AUTUNMN("秋天", "秋高气爽"),
    WINTER("冬天", "寒风凛冽");

    private final String name;
    private final String desc;

    private Season(String name, String desc){
        this.name = name;
        this.desc = desc;
    }

    public void showInfo(){
        System.out.println(this.name + ": " + this.desc);
    }
}

public class TestEnum {
    public static void main(String[] args) {
        //Season.SPRING;这段执行就是获取一个season的对象
        Season spring = Season.SPRING;
        spring.showInfo();

        Season summer = Season.SUMMER;
        summer.showInfo();

        //每次执行Season.SPRING获得的是相同的对象,枚举类中的每个枚举都是单例模式的
        Season spring1 = Season.SPRING;
        System.out.println(spring.equals(spring1));
    }
}
//春天: 春暖花开
//夏天: 炎炎夏日
//true

实现接口的枚举类

  •  和普通java类一样,枚举类可以实现一个或多个接口;
  • 若需要每个枚举值在调用实现的接口方法呈现出不同的行为方式,则可以让每个枚举值分别来实现该方法。

定义接口

interface InterfaceDemo {
    void test();
}

实现方法

public class EnumDemo {
    public static void main(String[] args) {
        Season spring = Season.SPRING;
        spring.showInfo();

        Season spring1 = Season.SPRING;
        spring1.showInfo();
        System.out.println(spring.equals(spring1));
        spring1.test();
    }
}

//实现接口
enum Season implements InterfaceDemo{
    SPRING("春天", "春暖花开"),
    SUMMER("夏天", "炎炎夏日"),
    AUTUNMN("秋天", "秋高气爽"),
    WINTER("冬天", "寒风凛冽");

    private final String name;
    private final String desc;

    private Season(String name, String desc){
        this.name = name;
        this.desc = desc;
    }

    public void showInfo(){
        System.out.println(this.name + ": " + this.desc);
    }


    @Override
    public void test() {
        System.out.println("这是实现的ITest接口的test方法");
    }
}

/*
春天: 春暖花开
春天: 春暖花开
true
这是实现的ITest接口的test方法
 */

枚举类的方法(一般不用)


注解

概述

  • 从JDK5.0开始,java增加了对元数据(matedata)的支持,也就是annotation(注释)。
  • annotation其实就是代码里的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理。通过使用annotation,程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息。
  • annotation可以像修饰符一样被使用,可用于修饰包、类、构造方法、方法、成员变量、参数、局部变量的声明,这些信息被保存在annotation的“name=value”对中。
  • annotation能被用来为程序元素(类、方法、成员变量等)设置元数据。

基本的annotation

  • 使用annotation时要在其前面增加@符号,并把该annotation当初一个修饰符使用。用于修饰它支持的程序元素。
  • 三个基本的annotation:
  • @Override:限定重写父类方法,该注释只能用于方法;
  • @Deprecated:用于表示某个程序元素(类、方法等)已经过时;
  • @SuppressWarnings:抑制编译器警告。

自定义annotation

一般用不到!


day12

io主要内容

File类_1

File类智能操作文件本身,但是不能操作文件内容。类似于,你可以把一个日记本放在各种地方,但是在日记本中写文件。

访问文件名

文件检测

File类_2

相关操作

 

File类递归遍历文件

io与io流体系

JAVA IO原理

不论输入还是输出,都是指的计算机。

流的分类

文件字节流

文件字节输入流

  

in.read读取的长度赋值给len,判断是否等于-1,==就是读完了。

文件字节输出流

从jvm里出来就是对文件的写入?

字节流复制文件

文件字节流练习:编写一个程序,把一个文件复制到指定文件夹下。

更通用

文件字符流

输入流

文件字符输入流FileReader

文件字符输出流FileWriter

copy文件

注意

定义文件路径时,可以使用“/”或者“\\”,

在写入一个文件时,如果目录下有同名文件将被覆盖。

在服务文件时,必须保证该文件已存在,否则出异常。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习Java编程语言的方法有很多种,以下是一些建议: 1. 学习基本概念:首先,你需要了解Java的基本概念,例如面向对象编程、变量、数据类型、控制流程等。可以通过阅读Java编程的教材或者参考资料来学习这些基本概念。 2. 编写代码:学习编程语言最重要的一点就是实践。尝试编写一些简单的Java程序,例如打印Hello World、计算两个数的和等。通过实践来加深对Java语法和概念的理解。 3. 学习工具和环境:了解并学习使用Java的开发工具和环境,例如Eclipse、IntelliJ IDEA等。这些工具可以帮助你更高效地编写和调试Java程序。 4. 学习API文档:Java提供了丰富的类库和API,学习如何使用这些API可以帮助你更快地开发Java程序。阅读Java官方文档或者其他相关的API文档可以帮助你了解这些API的用法和功能。 5. 参与项目或实践:参与实际的Java项目或者练习可以帮助你将所学的知识应用到实际中。可以尝试解决一些实际的问题或者参与开源项目来提升自己的编程能力。 6. 学习并发编程:Java是一门支持并发编程的语言,学习并发编程可以帮助你编写高效的多线程程序。可以阅读相关的书籍或者教程来学习Java的并发编程。 7. 参加培训或课程:如果你想系统地学习Java编程语言,可以考虑参加一些培训或者课程。这些培训或者课程可以提供结构化的学习内容和指导,帮助你更快地掌握Java编程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值