Java基础知识整理

一、标识符(给类、方法、变量起名)

1. 以字母(采用Unicode字符集)、下划线、$ 开头

2. 其余部分可以是:字母(采用Unicode字符集)、下划线、$、数字

3. 不能为关键字

二、命名规则

变量、方法名:首字母小写和驼峰原则。如:run(),runRun(),age   ageNew 

常量:大写字母和下划线:MAX_VALUE

类名:首字母大写和驼峰原则:Man,GoodMan 

三、变量:

1. 局部变量

定义在方法内或语句块内。 从属于方法或语句块。

使用之前,必须要手动初始化!

2. 成员变量(实例变量 field)

定义在类里面、方法外面。   从属于对象!

如果我们没有手动初始化成员变量,系统会自动初始化。初始化的规则如下:

数字:0,0.0   布尔:false  char:\u0000  引用类型:null

3. 静态变量(类变量)

定义在类里面、方法外面、使用static修饰。  从属于类!

如果我们没有手动初始化静态变量,系统会自动初始化。初始化规则同成员变量。

四、数据类型

1.  基本数据类型

a)   数字

       i.     整数:byte(1个字节)  short(2个字节)   int(4个字节,整型常量默认该类型)   long(8个字节)

      ii.     浮点数:float(4个字节)  double(8个字节,浮点常量默认为该类型)

b)   字符 char(2个字节)

c)   布尔 boolean(1位)

2.  引用类型(4个字节)(引用堆里面的一个地址,固定用4个字节表示)

a)   数组

b)   对象

c)   接口(不可以new )

3.自动类型转换:容量小的数据类型可以自动转换为容量大的数据类型,如:

int i=3; 

double d=i;

float f=i;

double d2=f;

特例:可以将整形常量直接赋值给byte,short,char等类型变量,而不需要进行强制类型转换,只要不超出其范围

short b=12        //合法

short b=1234567   //非法

五、运算符

1.  赋值运算符(=)

if(b=true)  ;  if(c=3)      //错误写法
if(b) ; if(3==c)           //正确写法

2.  算术运算符(+, -, *, /)

3.  关系运算符(>  ==  <)

常见错误写法: 1<a<3    1<a&&a<3

4.  逻辑运算符(&&, ||, !  )

5.  位运算符

按位与&, 按位或|,  <<(左移一位相当于乘以2),>>>(右移一位相当于除以2)

6.  扩展运算符:+=,-=,*=,/=,%=

7.  三目运算符

(布尔表达式)?语句1:语句2

六、控制语句

1. 顺序结构

2. 选择结构

a)  If

b)  If else

c)  If else if … else

d)  switch  多值选择  表达式:int或char/short/byte, 枚举

break问题

3. 循环结构

a)  while  先判断后执行

b)  for

c)  do  while  先执行后判断

break: 强制终止整个循环

continue:结束本次循环,继续下一次!

七、面向对象基础

对象和类:

对象是具体的事物,类是对象的抽象。 

定义类:

public  class  类名 {      //类名(建议首字母大写)要跟文件名相同

    //属性

    private  数据类型  属性名;   //建议增加相应的getter、setter方法

    //方法

    //构造方法

}

构造方法(construct):用于构造类的实例

[修饰符]   类名(形参列表){

    //n条语句

}

1. 方法名必须跟类名保持一致

2. 有返回值,但不能定义返回类型,不能再构造方法里调用return

3. 通过new关键字来调用

4. 无参构造器问题:

a)  如果我们没有手动定义构造器,系统会自动为我们添加一个无参的构造器

b)  如果我们自己定义了构造器,系统就不会为我们添加无参构造器

5. 构造方法的第一句总是:super,即调用直接父类的构造方法。

a)  有继承关系的构造方法调用的顺序

方法的重载(Overload):

两同(同一个类、同一个方法名)三不同(参数列表不同:;类型、个数、顺序)

只有返回值不同不构成方法的重载

只有形参名称不同,不构成方法的重载

this:

    普通方法中,调用本方法的对象。

    构造方法中,正要初始化的对象。

    不能用于static方法。

super:

    是直接父类对象的引用。可以通过super来访问父类中被子类覆盖的方法或属性。

    普通方法:没有顺序限制,可以随便调用。

    构造函数中:任何类的构造函数中,若是构造函数的第一行代码没有显式的调用super(…),那么Java默认都会调用super()作为父类的初始化函数。

static:

    用它修饰的变量和方法,就变成了静态变量和静态方法,从属于类,通过类名即可调用,实际存储于方法区中。

package:

    package必须位于非注释行第一句。

    包名:域名倒着写

import:

    引入外部的类

Import  static :导入类的静态属性

final:

    修饰变量:常量(命名规范:全部大写,多个单词之间通过下划线隔开)

    修饰方法:不能被子类重写,但可以被重载

    修饰类:不能有子类,不能被继承。比如:Math、String。

八、面向对象的三大特征

封装

    通过private、default 、protected、public关键字实现属性或方法的封装。

    “高内聚,低耦合”

继承

    利用extends关键字继承,子类继承父类,可以得到父类的全部属性和方法(除了父类发构造方法)

    Java中类只有单继承(即一个类只能有一个直接父类),没有像C++那样的多继承

    不同的叫法:超类、父类、基类;子类、派生类

方法重写(Override)的要点:

    方法名保持一致

    子类权限修饰符可以大于等于父类的。

    子类的返回值类型小于等于父类的类型, 子类声明异常类型不能超过父类的类型。

Object类:

    1.  Object类是所有Java类的根基类

    2.  如果在类的声明中未使用extends关键字指明其基类,则默认基类为Object类

    3.  重写:toString方法

        默认返回:包名+类名+@+哈希码

        可以重写

    4.  equals、hashcode

    5.  wait、notify、notifyAll

多态(polymorphism)

    三个必要条件:继承、方法的重写、父类引用指向子类对象

   动态绑定(慢)、静态绑定:

抽象类:

    1. 有抽象方法的类只能定义抽象类

    2. 抽象类不能实例化,即不能用new类实例化抽象类

    3. 抽象类可以不包含属性、方法、构造方法,但是构造方法不能用来new实例,只能用来被子类调用

    4. 抽象类只能用来继承

    5. 抽象方法必须被子类实现

接口:

    定义格式:  

[访问修饰符]interface 接口名  [extends  父接口1,父接口2...]{

       常量定义    //总是:public staticfinal

       方法定义    //总是:publicabstract

}

    1. interface

    2. 子类通过implements来实现接口中的规范

    3. 接口不能创建实例,但是可以用于声明引用变量类型

    4. 一个类实现了接口,必须实现接口中的多有方法,并且这些方法只能是public的

    5. 接口支持多继承

猜你喜欢

转载自blog.csdn.net/rabbit_judy/article/details/79444426