JAVA SE笔记分享
javase
JDK:Java开发工具包 java development kit
Java三个版本
JavaME:微版,java micro edition
JavaSE:标准版 java standard edition
JavaEE: 企业版 java enterprise edition
基本数据类型
8种基本数据类型
Byte 字节,1个字节,-27~27-1
Short 短整型,2个字节,-215~215-1
Int 整型,4个字节,-231~231-1
Long 长整型,8个字节,-263~263-1
Float 单精度,4个字节
Double 双精度,8个字节
Char 1个字节,0~65535
Boolean 布尔类型
特殊类型:String
Byte<short<int<long<float<double
Char<int<long<float<double
Byte,char,short,相加时,自动转为int
&前后均要比较,&&若前面为假则后面不判断
类型自动转换:类型向上转换,小范围的数据赋值给大范围的变量
类型强制转换:类型向下转换,大范围的数据赋值给小范围的变量
运算符
算术运算符: +,-,*,/ ,%, ++,–
++(–)在前面表示先自增(自减),再计算表达式
++(–)在后面表示先计算表达式,再进行自增(自减)
赋值运算符: =, +=,-=,*=,/=,%=
比较运算符: >, <, >=, <=, ==, !=
比较运算符的计算结果是boolean类型
位运算符:对二进制操作
& 与符号 并且 , | 或符号,或者
^ 异或,两边不同才为真 ~取反
无符号右移
<< 无符号左移有符号右移
逻辑运算符
& 与,并且 :两边都成立,结果才成立
| 或:两边只要有一边成立,结果就成立
^异或:两边相同,结果为false,两边不同,结果为true
!取反
程序三种结构
顺序结构
选择结构
If语句:语法格式:
单支选择:
if(条件表达式)
语句
或者
if(条件表达式){
一条或多条语句
}
双分支选择:
if(条件表达式)
语句1
else
语句2
或者
if(条件表达式){
语句块1
}else{
语句块2
}
多分支选择:
if(条件表达式1){
语句块1
}else if(条件表达式2){
语句块2
}
…
else if(条件表达式n-1){
语句块n-1
}else{
语句块n
}
switch多分支开关语句:
语法格式:
switch(表达式){
case 常量表达式1:语句组1;
[ break;]
case 常量表达式2:语句组1;
[ break;]
…
case 常量表达式3:语句组1;
[ break;]
default:语句块n
}
循环结构
while语句
语法
while(条件表达式){
语句或语句块
}
do-while语句
语法
do{
语句或语句块
}while(布尔表达式);
for语句
语法
for(初始化表达式;条件表达式;迭代语句){
循环体语句
}
流程跳转语句:break、continue
break:中断离它最近的switch或loop
continue:结束本次循环,继续下一次循环
数组
数组:用来存储具有相同数据类型的数据集合
数组的声明: 类型[] 变量名 = 值;
获取数组中的元素: 下标、索引,例a[];
数组的长度:length属性
数组的最大下标等于它的长度-1
注意:
下标越界:ArrayIndexOutOfBoundsException
数组一旦声明,则长度固定。
数组的三种声明方式:
Int[] a={1,2,3};
Int[] a=new int[4];
Int[] a=new int[]{1,2,3,4 }
二维数组:数组可以存储任何类型的数据,也可以是数组。
面向对象
类:大量对象共性的抽象
对象:万物皆对象
类是客观事物在人脑中的主观反映,类是创建对象的模板
类是对象的抽象,对象是类的具体
定义类的语法:
public class 类名{
// 类体
// 属性
// 方法
}
根据声明的类创建对象的语法:
类型名 变量名 = new 类型名();
属性声明语法:
[修饰符] 类型 变量名 [= 值];
方法声明语法:
[修饰符] 返回值类型 方法名([形参1,形参2…]){
// 方法体
}
调用属性语法:对象名.属性名;
调用方法语法:对象名.方法名([实参]);
注意1:传参时,基本数据类型是值传递,引用数据类型是引用传递。
注意2:调用方法时,如方法没有返回值,则不需要声明变量接受,方法有返回值,则需要声明变量接受。
方法重载:方法名相同,参数不同[参数类型不同,或者个数不同],参数顺序不同
this:指当前调用该方法的对象
构造方法:
特点:如果没有显式的写一个构造方法,则系统默认给一个无参的构造方法
特点:没有返回值类型,方法名和类名相同
作用:创建对象,初始化属性
构造方法中的this指的是当前创建的对象
构造方法中可以通过this()调用其它构造方法,且只能在第一行。
static:静态的
被static修饰的属性变成静态[共享]属性;
如果该属性被修改,则其它对象访问到的是修改后的值;
被static修饰的属性不依赖于对象而存在了,而依赖于类存在;
静态属性推荐通过类名.属性名的方式访问;
普通方法可以访问所有成员;
静态方法只可以访问类成员,注意,静态方法中不可以使用this;
普通属性[方法]可以称为实例成员、静态属性[方法]可以称为类成员;
final:最终的
被final修饰的属性一定要初始化
被final修饰的属性变成了常量,不能修改
习惯:被final修饰的属性变量全部大写
封装:private
对属性的封装
将属性设置为private(私有),限制其只能在类的内部使用
对方法的封装
对于方法的封装,将外部可以访问方法设置为public,将外部不 能访问的方法设置为private
注意:
public:公开,毫无私密性:在任何地方都可以访问公开属性;
private:私有的。私密的。:只能在本类内部访问私有属性;
如果觉得某个属性不能直接访问,则可私有化[使用private修饰],一旦私有化了属性之后,需要给该属性提供get和set方法;
继承:extends一个新类可以从现有的类派生,这样的过程叫做继承。
继承的语法:
public class 子类类名 extends 父类类名{
//子类类体
}
一旦发生了继承,则子类会继承父类的所有非私有属性和方法
构造方法不会继承
父类可以有多个子类,子类只能有一个父类。
如果一个类没有显式的继承另一个类,则默认继承java.lang.Object。
权限修饰符:
修饰符 访问范围 是否能被子类继承
public 公开能被所有类范围 不能被继承
protected 本类内部,同包的其他类, 能被继承
非同胞的子类
(default) 本类内部+同胞的其他类 能被同包的子类继承
private 私有 的,本类内部访问 能被继承
方法重写:
返回值类型,方法名,参数和父类继承下来的方法一致,这就是方法重写.权限修饰发的范围需要比父类的大或相等。
@Override注解:标明接下来的方法是方法重写[重写父类的方法]
注意:被final修饰的方法不能重写,被final修饰的类不能继承,
super:
当前调用该方法对象的父类[引用]对象;
当子类和父类出现同名属性[方法]时,可以通过super调用父类的同名属性[方法];
super([参数]):调用父类的构造方法,且只能在第一行;
构造方法的第一行默认是super();
多态:多种形态,子类对象赋值给父类引用
一旦发生了多态,只能调用父类具有的属性和方法,子类扩展的属性和方法不能调用;
但是,如果子类重写了父类的方法,则调用的是子类重写的方法;
instanceof: 用以判断对象是某个类的实例
抽象:
没有方法体的方法,叫抽象方法,抽象方法一定要用abstract修饰;
一个类里面有抽象方法,name这个类也是抽象类,抽象类一定要用abstract修饰;
抽象类可以有普通方法,抽象类可以没有抽象方法;
抽象类不能用来创建对象,但是可以作为引用;
抽象类有构造方法;
抽象方法不能被final修饰;
接口:interface
只有抽象方法和静态常量的类就可以声明成接口;
接口不能创建对象,可以作为引用;
接口没有构造方法;
子类可以继承父类的同时实现父接口;
接口可以多实现,接口和接口之间可以多继承;
注意:接口中的属性默认公开静态常量,方法默认公开方法。
本文地址:https://blog.csdn.net/qq_48860767/article/details/107280235