java笔记

----------数据类型

 --强类型语言(基本数据类型)

  

  long num1 = 10000l:整形的long类型后要加L

  float  num = 50.1F:浮点数的float后加F

  String不是关键字,是一个类; 

 最好不要使用浮点类进行比较

=true

 

所有的字符本质还是数字ASCLL码  :a == 97

//转义字符

  \t 制表符  空格

  \n 换行符

//布尔值扩展

  boolean flag = true

  if(flag) == if(flag == true)  代码要简洁易读!!!!

--类型转换

//内存溢出

  int i = 128;

  byte b = (byte)i;//()中加类型可以类型转换;此句内存溢出;

//强制转换  (类型)变量名 高--低    注意:1.不能对布尔类型转换!

  byte b = (byte)i;                 2.转换的时候注意内存溢出和精度!

  System.out.print((byte)i);//输出可类型转换;   3.强制类型转换字符到整型对应ASCLL码!

  System.out.print((byte)i);//输出可类型转换;

//自动转换        低--高         

  int i = 129

  double b = i;

//数字间可以用下划线分割(便于区分)

  int i = 10_0000_0000;

 //变量 

  //局部变量:必须声明初始化值;如int i = 1;

  //实例变量:从属于对象;

  //布尔值:默认为false;

  除了基本类型,其余的默认值都是null;

  //类的引用:变量类型 变量名字 = new Demo08(类变量)

        Demo08 demo08 = new Demo08();

        使用:demo08.(方法);

  //常量:特殊的变量,被设置后不可改变。

       常量名一般使用大写;

       格式:final 数据类型 变量 = 值;

                书写规范--------

 //Math:可以调用数学方法.... 

//位运算:

    <<:system.out.println(2<<3) == *2*2*2,左移动3位

    >>:== 2/2/2  右移动3位

            

 

 //字符串连接符:system,out,println(""+a+b):此处的+号是连接符--

                     首个是字符或者字符串,加号就是连接.

//三元运算符:--x ? y : z

        --如x = true ,则结果为y,否则结果为z.
        --例如   

        int i = 1;
        String type = i < 60 ?"不及格":"及格";
        System.out.println(type);

        输出结果为不及格or不及格.

//包机制:

    包的本质就是文件夹!!!

    一般用公司域名的倒置作为包名--www.baidu,com  ---com.baidu,www

    import com.case.***可以引用类

//JavaDoc

        

//用户交互scanner

  scanner对象:

        输入格式:Scanner scanner  = new Scanner(system.in);

             String str = scanner.nextline();

        ps:凡是属于IO流的类如果不关闭会一直占用资源,要习惯用完就关掉。

          代码:scanner.close();

    

//print——输出完不会换行

  println——输出完会换行 

 

//方法

   命名规则:驼峰--

   重载:形参不同,方法名相同.

   

 

 //Arrays类

     Arrays类中的方法都是static修饰的静态方法,再使用时可以直接使用类名进行                        调用,不用使用对象来调用(不用不等于不能)。

     方法:给数组赋值:fill

        对数组排序:sort,按升序

        比较数组:通过equals方法比较数组中元素值是否相等  

        查找数组元素:通过binarySearch方法能对排序好的数组进行二次查找                                                          法操作。

//面向对象:方法:静态方法:static

          非静态方法:无static,若调用先创建对象,用对象调用

       对象:new一个对象就是一个类的实例

       构造器:一个类即使什么也不写,也有一个方法

           和类名相同

           没有返回值

         作用

           new本质再调用构造方法

           初始化对象的值

          注意点

           定义有参构造后,如果想使用无参构造,显示的定义一个无参的构造

 

//封装 : 

    属性封装:get/set;

    好处:提高程序的安全性,保护数据

       隐藏代买的实现细节

       统一接口

       系统可维护增加了

          private int i;//私有属性
        public int getI() {
        return i;
        }//获得这个数据
        public void setI(int i)
        {
        this.i = i;
        }//设置属性值

//继承

    public class 子类 extends 父类 

    快捷键 ctrl + H

    所有类默认继承Object类

//Super 

    1.super调用父类的构造方法,必须在构造方法的第一个

    2.super必须只能出现在子类的方法或者构造方法中

    3.super和this不能同时调用构造方法

  VS this

    代表对象不同

      this 本身调用这个对象

      super 只能在继承条件下才可以使用

    前提

      this 没有继承也可以使用

      super 只能在继承条件下使用

    构造方法

      this() 本类的 构造

      super() 父类的构造

     //重写:需要有继承关系,子类重写父类的方法!

      1.方法名必须相同

      2.参数列表列表必须相同

      3.修饰符:范围可以扩大但不能缩小publ]ic>Protected>Default>private

      4.抛出的异常:范围,可以被缩小,但不能扩大

      重写,子类的方法和父类必要一致:

      方法体不同!

   为什么需要重写

      1.父类的功能,子类不一定需要,或者不一定满足!

      Alt+ Insert override

 

 

 

  

posted @ 2021-10-27 16:53  太上情  阅读(32)  评论(1)    收藏  举报