JavaSE--------基础语法(一)

一.基础语法

1、基本数据类型

(1)整数型
①byte(字节型):8位,取值范围是:-128~127,默认值是:0
②short(短整型):16位,取值范围是:-32768~32767,默认值是:0
③int(整型):32位,取值范围是:-2147483648 ~ 2147483647,默认值是:0
④long(长整型):64位,取值范围是:-9,223,372,036,854,775~9,223,372,036,854,775,默认值是:0L

(2)浮点型
①float(单精度):32位,默认值是:0.0f【后面的f必须加上】
②double(双进度):64位,默认值是:0.0d【后面的d可加可不加】

(3)布尔型
boolean它有两个取值类型:false/ture;它的默认值是:false

(4)字符型
char类型是一个单一的 16 位 Unicode 字符,它的取值范围是\u0000(即为0)~\uffff(即为65,535);它可以储存任意字符

2、运算符

(1)算数运算:+、-、*、/、%、++、–【其中++i和i++是不一样的, i++ 返回原来的值,++i 返回加1后的值。 i++ 不能作为左值,而++i 可以。】

(2)关系运算:<、>、<=、>=、!=、==【其中==是比较】

(3)赋值运算:=、+=、-=、*=、/=、%=

(4)逻辑运算:&&【短路与】、||【短路或】、!【短路非】

(5)位运算:&、|、^
【其中&&与&的区别是:
如果&&第一个表达式为false,则不再计算第二个表达式
而&是当&操作符两边的表达式不是boolean类型时,&表示按位与操作】

(6)三目运算:表达式?值1(true):值2(false);

(7)instanceof运算符:检查对象是否是一个特定的类型

3、修饰符

(1)访问修饰符【按访问权限的从打到小依次排列的】
①公共的public
②受保护的protected
③默认的
④私有的private

(2)非访问修饰符
①静态修饰符static
②final
Ⅰ.修饰类时,该类不能被继承
Ⅱ.修饰方法时,该方法不能被重写
Ⅲ.修饰变量时,该变量的值不能被改变,即为常量
③synchronize:处理多线程并发的问题【注:声明的方法同一时间只能被一个线程访问】
④abstract:抽象的,可以修饰类和方法【注:一个类不能同时被 abstract 和 final 修饰。如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则将出现编译错误。】

4、变量

(1)局部变量
①声明在构造、静态、实例方法和发吗块中的变量
②不能使用static和访问修饰符修饰
③可以使用final修饰,即为常量;不需要在声明语句中赋值
④在内存的栈区分配内存
⑤在使用之前必须赋值
⑥当方法被调用后的时候才会被创建,方法执行完毕后自动销毁

(2)成员变量(实例变量)
①声明在类体中
②当实例化对象时创建,对象销毁时销毁
③对所有类体的所有方法可见;对外可见性,根据访问修饰符决定的
④可以使用访问修饰符、static、final修饰
⑤成员变量可以不用赋初始化值,每种类型都有自己的默认值
⑥当被final修饰时,必须赋初始化值

(3)类变量(静态变量)
①声明在所有方法体和代码块之外,并且使用static修饰的变量
②可以使用访问修饰符修饰
③一般配合final使用,即public static final,标识符使用大写
④它被分配在静态存储区。是被所有该类的对象共享数据
⑤类变量是在程序开始时被创建,程序结束时被销毁

5、方法

(1)成员方法(实例方法)
①没有使用static关键字修饰的方法
②可以被对象所调用

(2)静态方法(类方法)
①使用static关键字修饰的方法
②可以被类或对象调用

【PS:在非静态方法中可以调用直接静态成员和非静态成员,在静态方法中只能直接调用静态成员,当滴哦用非静态成员时,必须通过实例化对象】

(3)构造方法
①作用:用于实例化对象,并对成员变量赋初始化值
②特点:
Ⅰ.不能有返回值
Ⅱ.方法名称必须与类名保持一致,区分大小写
Ⅲ.不能使用static、final等关键字
Ⅳ.当类中没有显式的构造方法,程序执行时会自动创建一个公开的无参构造方法
当类中有显式的构造方法,程序就不会在自动创建公开无参的构造方法
Ⅴ.可以使用访问修饰符来修饰,当时用非public修饰时,可能会导致某些场景下无法实例化对象
Ⅵ.可以使用参数,可以抛出异常
③调用:
Ⅰ.在本类的构造房中调用其他的构造方法,使用this()方式,this()必须在代码块中的第一行
Ⅱ.在其他地方只能使用实例化对象的方式来调用new类名()

(4)方法的相关概念
①方法重载:
Ⅰ.概念:
在一个类里面,方法名字相同,而参数不同。与返回值类型、访问修饰符无关
Ⅱ.规则:【与修饰符和返回值无关,与以下有关】
ⅰ.参数的类型不同
ⅱ.参数个数不同
ⅲ.参数的顺序不同
②返回值:
Ⅰ.除构造方法外,其他所有方法声明时必须有返回值的占位符,当方法无返回值时,使用void
Ⅱ.返回值使用return关键字,一个方法中可以有多个return
Ⅲ.声明的返回值类型,要和真实的返回值类型保持一致
Ⅳ.当方法有返回值时。调用该方法,就会得到该方法返回的数据
③参数:
Ⅰ.参数是一个特殊的局部变量,在使用时无需在方法体内赋值
Ⅱ.参数的值是在调用该方法时,通过在括号中赋值时传递的
Ⅲ.方法中的参数可以有多个,即参数列表
Ⅳ.参数可以是基本数据类型,也可以是引用数据类型

6、流程控制

(1)分支语句
①if-else
②switch-case

(2)循环语句
①while
②do-while
③for
④foreach

(3)控制
①continue:跳过本次循环,不在执行continue后面的代码,继续下一次迭代
②break:跳出当前循环体,继续循环后面的代码
③标签:声明在循环体之前;例如:a: for(){},需要配合continue/break关键字来使用

(4)面向对象
①封装
Ⅰ.私有属性,吧成员变量的访问修饰符声明为private
Ⅱ.公开方法对属性赋值和取值,声明getXXX()和setXXX()
②继承
Ⅰ.在Java中是单继承关系,但是可以实现多重继承
Ⅱ.子类可以继承父类非私有的属性和方法,不能继承构造方法
Ⅲ.在实例化子类时,先执行父类的构造方法,在执行子类的构造方法
Ⅳ.当父类的方法无法满足子类需要时,子类可以重写父类的方法
Ⅴ.在子类中,使用super关键字表示父类对象,可以用在非静态方法中;
super()表示父类构造器,只能用在子类的构造器中,并且是在构造器的第一行
Ⅵ.this代表子类对象,可以使用在子类的非静态方法中;this()表示子类的构造器,只能用在子类的构造器中,并且是在构造器的第一行;不能和super()同时出现
Ⅶ.当类使用final关键字修饰时,该类不能被继承
Ⅷ.重写规则:
ⅰ.重写方法的声明部分(返回值类型、方法名、参数列表)要和父类中的方法保持一致;
ⅱ.重写方法的访问权限要大于等于父类的方法;
ⅲ.重写方法可以抛出任意的非强制性异常,如果父类方法中抛出了异常,子类中的重写方法抛出异常的范围要小于等于父类
ⅳ.当父类的方法使用final关键字修饰时,可以被继承,但不能被重写
ⅴ.当父类的方法使用static修饰时,可以被继承,不能被重写,但是可以在子类中重写声明
ⅵ.(排除final和static关键字的情况下)
如果在同包下,子类可以重写父类的非私有的方法;
不在同包下,子类只能重写父类的public和protected修饰的方法;
ⅶ.不能被继承的方法,不能重写,例如:构造方法
③多态
Ⅰ.继承
Ⅱ.方法重写
Ⅲ.父类引用指向子类对象(向上转型)
Ⅳ.父类引用调用子类重写的方法,指向的是重写方法
④抽象类
Ⅰ.使用abstract关键字修饰的类,即为抽象类
Ⅱ.抽象类中可以声明普通类的所有成员之外,还可以声明抽象方法
Ⅲ.含有抽象方法的类一定是抽象类,抽象类中不一定有抽象方法
Ⅳ.抽象类不能被实例化对象,只能被继承,使用多态的方式获取对象也可以使用匿名内部类的方式创建对象
Ⅴ.如果一个类继承了抽象类,必须要重写抽象类中的所有抽象方法
Ⅵ.抽象方法中可以声明构造方法
⑤接口
Ⅰ.使用interface关键字修饰
Ⅱ.接口是可以多继承的
Ⅲ.接口可以被类实现,一个类可以实现多个接口
Ⅳ.接口是一个完全抽象的抽象类,接口中的方法都是抽象方法(JDK1.7↓)
Ⅴ.接口中不能有构造方法
Ⅵ.接口中不能声明变量,只能声明常量,默认的声明格式为:public static final int i = 1;
Ⅶ.接口的声明和接口中方法的声明默认都使用了abstract关键字

你可能感兴趣的:(Java)