美文网首页
Java 基础知识(二)

Java 基础知识(二)

作者: 月影风煞 | 来源:发表于2018-04-09 14:26 被阅读0次

    1.java的数据类型

    a 基本数据类型(八大):

    • 整数相关的:byte(1个字节8bit, -128~127), short(2个字节16bit, -215~215-1), int((4个字节32bit, -231~231-1), long(8个字节64bit, -263~263-1)
    • 浮点数相关的:float(4个字节32bit,-3.4 * 1038~3.4 * 1038),double(8个字节64bit, -1.7 * 10308~1.7 * 10308)默认是double类型
    • 字符相关的:char(2个字节16bit,单引号)
    • 布尔相关的:boolean(2个字节1bit,true,falsse)
      b 引用类型:
    • 类,接口,数组,String

    2.命名规范

    • 变量名规范:字母、数字、_ 、$ 组成,首字母是非数字
      常量或final修饰的变量名全大写
    • 方法名规范:遵巡变量名规范,首字母小写,后面的驼峰式命名,通常是动词。
      方法名、参数名、成员变量、局部变量都统一使用
      lowerCamelCase风格,必须遵从驼峰形式。
    • 类命名规范:遵巡变量名规范,首字母大写,后面的驼峰式命名
    • 包命名规范:遵巡变量名规范,全小写,不能有空格
      所有的名字都不能是关键词,goto、const是保留字符,也不能用

    3.操作符

    • 算术运算符:+ 、 - 、 * 、 / 、 % 、 ++ 、 -- 、位运算符(& 、|)
    • 比较运算符:> 、< 、== 、>= 、<=
    • 逻辑运算符:发生短路(&& 、||),不发生短路(& 、|)
    • 三目运算符:表达式?值1:值2

    4.数据类型之间的操作符运算转换关系

    类型关系
    • 自动转换情况:
      两种类型兼容:char a='c'+1;//int和char是可以兼容的
      把低级赋值给高级:float f=20;
    • 强制转换情况:
      数据的溢出:byte b=(byte)130;//b=-126
      高级转化成低级:int n=(int)3.14;//n=3

    char a='c'+1;//输出a 为d,输出的'c'+1为100
    先把字符c转换成int类型进行计算,之后把int赋值给char
    char a=98;//输出a是字符b

    int k=2147483647;i++;内存溢出也不会报错,因为++,--是会做预处理的。
    byte i=127;i=i+1;报错,i+1已经溢出了,超出了范围则默认是int类型

    5.面向对象

    • OO(object oriented) 面向对象
    • OOP(object oriented programming) 面向对象的编程
    • OOA(object oriented Analysis)面向对象的分析
    • OOD(object oriented Design)面向对象的设计
      面向对象:注重类的属性与行为,参与者一般是一个指挥者 如JAVA
      面向过程:注重程序的流程 数据结构与算法 参与者是程序的本身 如C
      面向过程是面向对象的基础,面向对象依赖于面向过程

    6.类的介绍

    把具有相同属性或行为的一系列的事物定义成一个类

    内存分配
    局部变量是必须先赋值再使用的
    类的属性可以不用先赋值,它有默认的赋值:
    • 基本类型属性:

    byte short int ——>0
    long ——> 0L
    char ——> \u000 显示为一个矩形框
    float double ——>0.0
    boolean——>false

    • 引用类型默认值——>null

    7.面向对象的特征

    • 抽象:
    • 继承:
    • 封装:通过类的修饰符来实现
    • 多态:方法的重载、重写(覆盖)、子类对象赋值给父类
    1)修饰符(三大类修饰符):
    • 访问修饰符:public | protected | default | private
    • static :静态的
    • final : 最终的 不能改变的量 常量

    final属性:只能赋值一次,变量名大写
    final方法:子类不能对这个类重写,可以重载
    final类:不能被继承 ,无后代

    static 静态的 不依赖对象,只依赖类 内存分配中只有一份,存放于静态池中
    static属性:静态属性,所有对象共享,一个对象修改了会影响另外一个对象的访问
    static方法:静态方法在一开始就在静态池中分配好了内存,普通方法是随对象产生才有内存的,所以静态方法中不能有普通属性和方法,而普通方法可以访问静态属性和方法

    类的方法和属性的访问权限:

    访问修饰符

    抽象类的的访问权限:
    抽象类之所以为抽象类,是因为它是作为父类来使用的,是等待子类去实现的,而类中 private的权限只能是自个访问自个,所以在抽象类中抽象方法只有public,protected,default三种访问权限。

    接口的访问权限:
    所有成员的属性都为public static final,也就是说接口中声明的变量都是常量,不能被继承
    所有方法的访问属性为public, 所以实现接口中的方法必须标识为public,否则编译出错

    2)方法的重载(overlode)和重写(override 覆盖)

    重载:同一个类中,方法名相同,参数列表不同(参数个数或类型)
    返回类型不用管

    重写(覆盖):发生在继承关系中,对父类的方法进行重写
    要求:

    • 方法名相同
    • 参数列表相同
    • 访问修饰符不能低于父类的访问修饰符
    • 抛出的异常不能大于父类的异常
    • 返回值类型子类的可以隐式转换成父类

    域的隐藏:

    • 方法的参数名与类的域(属性)重名,属性名会默认隐藏
    • 继承关系中同包下的子类对父类的private属性隐藏,不同包下的子类对父类的private default属性隐藏
    • 向上类型转换时,子类自身属性自动隐藏

    方法的参数传递:

    • 基本类型数据和String (new String)传递的是值的副本,原来的值不变,副本调用方法
    • 除String外的引用类型传递的是值的地址,就是原来的值在调用方法
    3)类的构造器(构造方法)

    构造器是一个特殊的方法,系统默认自带一个无参构造器,如果提供了构造器,则默认的构造器失效,要使用无参构造器就手动添加
    构造器的作用:创建对象的时候给属性初始化

    this();//在构造器中调用当前类的默认构造器
    super();//在构造器中调用父类的构造器
    super.方法();//调用父类方法

    构造方法不能被继承。
    子类初始化时一定会调用父类构造器的,没有的话默认调用(super)父类无参构造器,所以一般父类有参构造时手动添加无参构造

    4)类的执行顺序

    一个类中:

    • 静态(static)代码块(静态方法、静态属性)
    • 成员属性方法
    • 构造方法(要给属性赋值)

    继承关系的类中:(先有父母再有子女)

    • 父类静态 子类静态
    • 父类普通代码块 父类构造
    • 子类普通代码块 子类构造
    5)类的类型转型
    • 向上转型(caseuper):子类对像赋值给父类,子类自身的属性方法被隐藏
    • 向下转型(casedown):父类对象赋值给子类,必须先向上转型,才可以向下转型。
    Animal a=new Dog();//向上转型,自动
    Dog d=(Dog)a;//向下转型,强转
    

    相关文章

      网友评论

          本文标题:Java 基础知识(二)

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