JAVA学习笔记

Day01 2021/8/8

一、注意

  1. 布尔常量是可以输出的
  2. null不可以输出

二、错误总结

  1. float f=13.14;
    System.out.println("f");错误
    应该(f);

Day02 2021/8/9

一、注意

  1. 类型转换可以是从小到大,强制类型转换是从大转小(不建议使用,有数据丢失)
  2. System.out.println(5.2 / a);//可以得到小数
  3. '0' Asics为48 ‘0--9’连续
  4. 算术表达式中包<含多个数据类型>的值的时候,整个算术表达式的类型会自动提升。
  5. System.out.println("黑马" + 6 + 66); ——黑马666
    System.out.println(1 + 99 + "年黑马");———100黑马
    总结: 从左到右运算
  6. +=包含了强制类型转换---(不建议)
    short s=10;
    s += 20; 正确 等同于s = (short)(s + 20)
    s = s + 20; 错误
  7. b = a++; a值先给b,再++。一般单独使用++;
  8. 异或^ 相同为T,不同为F
  9. 短路与|| 左边为真右边不执行
    短路或&& 左边为假右边不执行

二、错误总结

  1. c="A",为字符串(String), c='A',为单个字符;

Day03 2021/8/10

一、注意

  1. 测试数据:选择正确数据、边界数据、错误数据。
  2. for循环里的循环变量,出了循环不可使用。while循环里的变量,全局都可以使用。
  3. for( ; ; )为for的死循环 ctrl+c可以结束循环

Day04 2021/8/11

一、注意

  1. 反复练习idea操作

二、错误总结

  1. idea中一旦选定文件储存区域,不能对文件进行重命名。

idea里的快捷键

  1. 快速生成mian() psvm,
  2. 快速生成输出 sout
  3. 内容辅助 ctrl + Alt + space
  4. ctrl + Alt + l 修改代码标准格式
  5. ctrl + Alt + v 代码自动补全

Day05 2021/8/12

一、注意

  1. 方法重载
  2. 输出语句
  3. 从问题中提炼数据,从数据中寻找规律,从规律中程序化。

二、错误总结

  1. 该错误要一改都改,记得改了同样出现的地方。

Day06 2021/8/13

一、注意

  1. private 修饰成员变量
  2. this关键字,加载变量前,解决局部变量隐藏成员变量
  3. 构造方法,在类中 public Student() {};
  4. 构造方法就相当于方法 函数;

二、错误总结

  1. 给字符串(String)赋值要加引号,单引号、双引号;

Day07 2021/8/14

一,注意

二,错误总结

  1. System.out.println("输入的数据是:" + line); 正确----不能写成System.out.println("输入的数据是: + line");

Day08 2021/8/15

一、注意

  1. [用==作比较: 基本类型:比较的是数据值是否相同 应用类型:比较的是地址值是否相同]()

  2. 比较字符串用方法:.equals() public boolen equals(Object and Obeject); s1.equals(s2)

  3. 获取字符串中单个字符 .charAt();

  4. 获取字符串的长度 .length();

  5. String是可变的,StringBuilde是不可变的。

  6. StringBulider中append添加数据并返回数据本身 reverse反转
    B->S转换String s = sb.toString();
    S->B转换StringBuilder sb = new StringBuilder(s);

  7. ArrayList方法:
    删除--返回是否成功
    array.remove("world");
    删除指定位置--返回别删除元素
    array.remove(1);
    //修改指定位置索引,返回被修改元素
    System.out.println(array.set(1,"nima"));

     //返回索引处的元素
     System.out.println(array.get(1));
      
     //返回集合中元素的个数
     System.out.println(array.size());
     //输出集合
     System.out.println(array);
     //添加
     add
    

二、错误总结

  1. 一般数组或者字符串的遍历用for()循环
  2. 定义变量必须初始化(与C语言不同)
  3. 字符串可以定义byte {97}输出字符,s.charAt(a) >= 97正确
  4. 数字不带引号,字符串带引号;
  5. 一开始写不能忘记main方法!!!

Day09/8/18

一.注意

  1. 快捷键 alt + insert 根据自己的需要进行选择。

  2. 字符串比较不能用 == 比较!!!!用equal!!!

  3. 多想!!多尝试!!把问题全面化,简单化!!一定可以!

二、错误总结

  1. System.exit(0); 退出程序.
  2. switch用String的好处,输入出错,程序不会报错,还可以继续运行下去,直到输入正确的选择。
  3. 输出特殊含义的方法 在sout里不能加引号。
  4. 用ArrayLiss中数据时,必学先取出对象,再调用对象的方法。
  5. 多思考!!!!!摆脱惯性思维!!!!!!
  6. while 和 for里定义的变量外界不能用,但在外界定义,在里面赋值操作,外界同样改变!

感悟:

程序没有最好,只有更好。只要你动脑筋想,无穷的巧妙方法!

相同问题,方法不唯一。不同问题尽管类似,但要找到起不同,用合适的方法!

d://StudentManger delete\update Student 里对学号不存在的判断

从问题根源解决: 想着修改、删除、重复学号怎么办 源头!!!控制添加方法----让其不要输入重复!!!

Day10/09/11

一、注意

  1. 继承格式 public class zi extends fu() {};
  2. 构造方法和成员方法:
    1.构造方法 构造方法作用概述 给对象的数据进行初始化 构造方法格式 方法名与类名相同 没有返回值类型,连void都没有 没有具体的返回值 构造方法注意事项 如果你不提供构造方法,系统会给出默认构造方法 如果你...
    2.成员方法 成员方法作用概述 表示对象所具有的功能(和行为)。 成员方法格式 有返回类型,可以为void类型,也可以是基本数据类型.
  3. 继承中变量 、方法的访问特点:
    先方法,再成员变量,再父类
    想访问成员用this,想访问父类用super
  4. @override
    @Override这个标签有什么用呢。。。。。。
    其实我也是比较迷茫,查了一下,三个作用吧
    1.可以给你当作注释用,感觉这个也不能说明什么,注释也没什么用。
    2.可以告诉读你代码的人,这是对它父类方法的重写,其实很多代码规范没有为什么,规范就是规范,代码的可读性还是很重要的。
    3.编译器可以给你验证@Override下面的方法名称是否是你父类中所有的,如果没有就会报错。
  5. 访问权限:public > 默认 > privata
  6. 类只支持单继承,不支持多继承,但支持多层继承。

Day11/09/12

一、注意

  1. java se :标准版 用于开发桌面应用
  2. java ee: 企业版
  3. java me: 微型

Day11/09/26

一、注意

  1. 导包,文件直接创建,cmd java d . Hello.java

  2. 修饰符 (publick) (protected) (默认) (private)

  3. 状态修饰符
    final 最终,修饰成员 1. 方法,2. 成员变量,3. 类,4. 局部变量,5. 引用变量(如 final Student s = new Student;)。

    1. 最终方法,不能被重写;
    2. 变量为常量,不能再次被赋值;
    3. 最终类,不能被继承。
    4. 数据值不能变;
    5. 地址值不能变,但是地址值里的内容可以变。

    static 静态,可以修饰成员方法,成员变量。

    1. 特点: 别类的所有对象共享;--------也是判断是否使用静态关键字的条件。
    2. 可以使用对象名调用,也可以使用类名调用。<推荐类名调用>
    3. 静态成员方法只能访问静态成员。
    4. 非静态都可以访问。
    5. main通常为静态 所以,类下面的方法一般也为静态。

Day12/2021/9/29

多态

一、 多态中成员访问特点

![e043f945ba7d7bd37ad0329bbe9bc4a](C:\Users\23694\AppData\Local\Temp\WeChat Files\e043f945ba7d7bd37ad0329bbe9bc4a.png)

  1. **多态的好处与弊端

![df065b619113d744a14b7e889e6837e](C:\Users\23694\AppData\Local\Temp\WeChat Files\df065b619113d744a14b7e889e6837e.png)

  1. **多态的转型
    //多态
    Arimal a = new Cat();
    //1.从子到父,父类引用指向子类对象、向上转型
    a.eat();

    //2.从父到子,向下转型,父类引用转为子类对象
     Cat c = (Cat)a;
     c.playGame();
     //逆着看 
    

Day13/2021/10/06

抽象类![55c0455d5b639de6d7782ba5329a00c](C:\Users\23694\AppData\Local\Temp\WeChat Files\55c0455d5b639de6d7782ba5329a00c.png)

成员特点

ERROR

  1. ![9ddca1064128fcc4f0de5b42eb43295](C:\Users\23694\AppData\Local\Temp\WeChat Files\9ddca1064128fcc4f0de5b42eb43295.png)String 定义的变量赋值要加 ”“;

接口

一、接口的特点

  1. 用关键字Interface修饰;
  2. 类实现接口用implement
  3. 接口不能实例化
    *可用多态方式,通过实现对象实例化,这叫接口多态。
  4. 多态的形式
    具体类多态、抽象类多态、接口多态
  5. 多态的前提
    有继承或者实现关系; 有方法重写;有父类的(接口/类)引用指向(子/实现)类对象

二、接口的成员特点

![8b1956872eda32d7978c71682dcc980](C:\Users\23694\AppData\Local\Temp\WeChat Files\8b1956872eda32d7978c71682dcc980.png)

更多文章请关注《万象专栏》