Day25-IO流一
IO流一File和IO流简介 File File是java.io.包下的类, File类的对象,用于代表当前操作系统的文件(可以是文件、或文件夹)。 注意:File类只能对文件本身进行操作,不能读写文件里面存储的数据。(获取文件属性、创建、删除文件) IO流 用于读写数据的。(可以读写文件,或网络中的数据……) File创建对象 123456789101112131415161718//创建一个File对象,指代某个具体的文件。//路径分隔符的三种写法File f1 = new File("F:/ProgramData/resource/test.txt");File f2 = new File("F:\\ProgramData\\resource\\test.txt");File f3 = new File("F:" + File.separator + "ProgramData" + File.separator + "resource" +...
Day22-集和框架二
集和进阶(二)Collection的其他相关知识可变参数 就是一种特殊形参,定义在方法、构造器的形参列表里,格式是:数据类型…参数名称。 特点:可以不传数据给它;可以传一个或者同时传多个数据给它;也可以传一个数组给它。 好处:常常用来灵活的接收数据。 注意事项 可变参数在方法内部就是一个 数组 一个形参列表中,只能有一个可变参数。 可变参数必须放在形参列表的最后面。 Collections类 是一个用来操作集和的工具类 常用静态方法 实战:斗地主发牌 需求分析: 业务:总共有54张牌。点数分别要组合4种花色,大小王各一张。 点数:3、4、5、6、7、8、9、10、J、Q、K、A、2 花色:♦、♣、♥、♠ 大小王: 小王👿 大王😈...
Day21-集和框架一
集和进阶(一) 集合(ArrayList)是一种容器,用来装数据的,类似于数组,但集合的大小可变,开发中也非常常用。 集和体系结构 Collection代表单列集合,每个元素(数据)只包含一个值。 Map代表双列集合,每个元素包含两个值(键值对)。 Collection集和体系 Collection集和特点 List体系结合:添加的元素是有序、可重复、有索引。 ArrayList、LinekdList:有序、可重复、有索引。 Set系列集合:添加的元素是无序、不重复、无索引。 Hashset:无序、不重复、无索引。 LinkedHashset:有序、不重复、无索引。 Treeset:按照大小默认升序排序、不重复、无索引。 Collection的常用方法 Collection是单列集合的祖宗它规定的方法(功能)是全部单列集合都会继承的 方法 功能 1.public boolean add(E e) 添加元素,添加成功返回true。 2.public void clear() 清空集合的元素。 3.public boolean...
Day20-正则表达式
正则表达式概念 就是由一些特定的字符组成,代表的是一个规则。 作用一:校验内容是否合法。 123456//校验QQ号是否合法(6-20位纯数字)public static boolean checkQQ (String qq){ if(qq == null || qq.matches("[1-9]\\d{5,19}")){ return false; }} 作用二:在一段文本中查找满足要求的内容。 书写规则 String提供了一个匹配正则表达式的方法 public boolean matches (string regex) 判断字符串是否匹配正则表达式,匹配返回true,不匹配返回false。 字符类(只匹配单个字符 预定义字符(只匹配单个字符) 数量词 其他 (?i) 忽略大小写 |...
Day19-②常用Api二
常用API二Math、System、RuntimeMath 代表数学,是一个工具类,里面提供的都是对数据进行操作的一些静态方法。 常见方法 System System代表程序所在的系统,也是一个工具类。 常见方法 时间毫秒值:指的是从1970年1月1日00:00:00走到此刻的总的毫秒数,应该是很大的。1s=1000ms。 可以用于计算程序运算时间 Runtime 代表程序所在的运行环境。 Runtime是一个单例类。 常见方法 BigDecimal简介 用于解决浮点型运算时,出现结果失真的问题, 常见构造器、常用方法 BigDecimal一定要得到一个精确结果 123456BigDecimal a = BigDecimal.valueOf(0.1); //禁止直接将Double转化为Bigdecimal 会带来误差BigDecimal b = BigDecimal.valueOf(0.3);//无法整除时 要设置 小数精度 和 舍入方法BigDecimal c = i.divide(j, 2, RoundingMode.HALF_UP); ...
Day19-①常用Api一
常用API一Object类简介 Object类是java中所有类的祖宗类,因此,java中所有类的对象都可以直接使用0bject类中提供的一些方法。 常见方法 toString toString方法重写前:返回对象的引用地址 重写toString方法后:返回对象的内容 equals equals方法重写前:返回对象的引用地址 重写equals方法后:比较两个对象各项内容 clone 当某个对象调用clone方法时,这个方法会复制一个一模一样的新对象返回(而不是返回原对象本身) 重写一个方法 实现一个接口 抛出一个异常 Objects类简介 Objects是一个工具类,提供了很多操作对象的静态方法给我们使用。 常见方法 使用objects类中equals的好处:由于做了非空校验...
Day18-面向对象高级三
进阶三内部类什么是内部类 是类中的五大成分之一(成员变量、方法、构造器、内部类、代码块),如果一个类定义在另一个类的内部,这个类就是内部类。 场景:当一个类的内部,包含了一个完整的事物,且这个事物没有必要单独设计时,就可以把这个事物设计成内部类。 四种内部类 成员内部类 就是类中的一个普通成员。 成员内部类的创建。 和前面学过的实例方法一样,成员内部类的实例方法中,同样可以直接访问外部类的实例成员、静态成员。 可以在成员内部类的实例方法中,拿到当前外部类对象,格式是:外部类名.this。 静态内部类 有static修饰的内部类,属于外部类自己持有。 静态内部类的创建。 可以直接访问外部类的静态成员,不可以直接访问外部类的实例成员。 局部内部类(基本没用) 局部内部类是定义在在方法中、代码块中、构造器等执行体中的类。 匿名内部类(重点) 就是一种特殊的局部内部类;所谓匿名:指的是程序员不需要为这个类声明名字。 特点:匿名内部类本质就是一个子类,并会 立即 创建出一个...
Day14-面向对象高级二多态
进阶二多态多态概念什么是多态 多态是在 继承/实现 情况下的一种现象,表现为:对象多态、行为多态 具体的代码体现 同种引用可以指向不同的对象(父类指向子类) 不同的对象的同名函数实现的功能不同(重写方法) 多态的前提 有 继承/实现 关系;存在父类引用子类对象;存在方法重写。 注意事项 多态是对象、行为的多态。Java中的属性(成员变量)不谈多态。 使用多态的好处 在多态形式下,右边对象是解耦合的,更利于拓展和维护。 定义方法时,使用父亲类型的形参,可以接收一切子对象,拓展性更强,更便利。 多态的一个问题 多态下不能使用子类独有的功能 类型转化 自动类型转换:父类 变量名 = new 子类 (); 强制类型转换:子类 变量名 = (子类)父类变量名 强制类型转换问题 (变量名name) instanceof (类名class) 合法格式:父类变量名 instanceof...
Day11-面向对象高级一static
进阶一static1、static修饰成员变量 称为静态,可以修饰成员变量、成员方法。 两种成员变量 类变量:有static修饰,属于类,在计算机里只有一份(跟类一起加载,其中数据在堆区,引用在方法区),会被类的全部对象共享 实例变量:无static修饰,属于每个对象。 1234public class student{ public static String career = "学生"; //所有对象公有这个career 这个变量只有一个(实际上这个变量在类里) String name; //每个对象都有自己各自的name} 访问:类变量用类名访问,实例变量实例化后通过对象访问。 12345public static void main(){ Student s1 = new Student(); System.out.println(Student.career); //学生 System.out.println(s1.name); ...