JAVA笔记
IDEA快捷操作:
public static void main(String[] args) { }
快捷操作:pvsm
System.out.println();
快捷操作:sout
JavaDoc生成文档
@author作者名
@version版本号
@since 指明需要最早使用的jdk版本
@param参数名
@return 返回值情况
@throws异常抛出情况
Java注释:
- 单行注释
//单行注释
- 多行注释
/*多行注释*/
- 文档注释
/**
* 这个类演示了文档注释`
* @author Ayan Amhed`
* @version 1.2`
*/
java标识符
- 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始
- 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
- 关键字不能用作标识符
- 标识符是大小写敏感的
java数据类型
-
基本类型(primitive type)
整型:byte 1子节、short 2子节、int 4子节、long 8子节
浮点类型:float 4子节、double 8子节
字符型:char 2子节
布尔类型:boolean 又称为逻辑类型,只有true和false两个值,表示真和假。 -
引用类型(reference type)
类、接口、数组
转义字符:
字符 | 意义 | 字符 | 意义 | 字符 | 意义 |
---|---|---|---|---|---|
' | 单引号 | \t | 制表符 | \b | 退格 |
" | 双引号 | \r | 回车 | \f | 换页 |
\ | 反斜杠 | \n | 换行 | \0 | 空字符 |
数据类型转换
语法:
(类型名)要转换的值
变量的命名规范:
所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则:monthSalary除了第一个单词以外,后面的单词首母大写 lastname lastName
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(),runRun()
运算符:
- 赋值运算符(=)
- 算术运算符(+(加)、-(减)、*(乘)、/(除)、%(取余))
- 自增、自减运算符(++、--)
- 比较运算符(大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)、不等于(!=))
- 逻辑运算符(与(&&)、或(||)、非(!))
- 三元运算符(条件式?值1:值2)
- 位运算符:<<左移位 >>右移位 >>>无符号右移位
- 位逻辑运算符:&逻辑与、| 逻辑或、!逻辑非、&& 短路与、|| 短路或、 ^ 逻辑异或
- 复合运算符:+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>=、>>>=
方法
语法
修饰符 返回值类型 方法名(参数列表){
代码
return;
}
分支结构
if-else语句
- if语句
- if...else语句
- if...else if...else语句
if(关系表达式){
语句体1;
}else{
语句体2;
}
switch语句
switch(表达式){
case 常量值1 :
语句1;
break;
case 常量值2 :
语句2;
break;
......
default :
}
循环结构
for循环
for(赋初值;判断条件;赋值加减){
//执行语句
}
while循环
while循环的基本格式:
while(判断条件语句) {
循环体语句;
}
do...while循环
do {
执行语句
} while(循环条件);
特殊流程控制语句
break、continue、return
- break是跳出当前所在的循环,执行循环后面的语句;
- continue是跳出当前这次循环,继续下一次循环。
- return跳出当前所在的方法,是返回方法调用者一个数据。
死循环
while(true){
//循环体
}
数组
一维数组
动态初始化:数组声明且为数组元素分配空间与赋值的操作分开进行
int[] arr = new int[3];
arr[0] = 3;
arr[1] = 9;
arr[2] = 8;
静态初始化:在定义数组的同时就为数组元素分配空间并赋值。
int a[] = new int[]{ 3, 9, 8};
int[] a = {3,9,8};
二维数组
格式1(动态初始化):int[][] arr = new int[3][2];
格式2(动态初始化):int[][] arr = new int[3][];
格式3(静态初始化):int[][] arr = new int[][]{{3,8,2},{2,7},{9,0,1,6}};
遍历数组
for each循环
语法:
for(type x:obj){ 引用了x的java语句 }
数组操作常见问题:
- 数组下标越界异常(ArrayIndexOutOfBoundsException)
int[] arr = new int[2];
System.out.println(arr[2]);
访问到了数组中的不存在的脚标时发生。
- 空指针异常(NullPointerException)
int[] arr = null;
System.out.println(arr[0]);
arr引用没有指向实体,却在操作实体中的元素时。
★注意特殊写法情况:int[] x,y[]; x是一维数组,y是二维数组。
面向对象编程
- 面向对象(OOP)与面向过程(POP)
- 面向对象的三大特征:
封装 (Encapsulation)
继承 (Inheritance)
多态 (Polymorphism)
类和对象
类的语法格式
修饰符 class 类名 {
属性声明;
方法声明;
}
方法
[权限修饰符][返回值类型] 方法名 ([参数类型 参数名])[throws 异常类型] {
//方法体
return 返回值; }
- 方法的返回值:任何数据类型、任何可用的类、任意类型的数组、无返回值
注意:1.如果有返回值,一定要使用return关键字返回相应类型的数据 2.return会强制中断方法 - 方法的参数
注意:1.参数可以有多个,不限类型 2.每一个参数都必须生命参数类型 3.调用方法时,注意参数的顺序
参数的种类:值参数、引用参数、不定长参数
对象的语法格式
类名 对象名 = new 类名()
使用对象访问类中的成员
对象名.成员变量
对象名.成员方法
类的主方法:
public static void main (String[] args) { //方法体 }
封装:
封装的操作——private关键字:
格式:
private 数据类型 变量名;
封装优化1——this关键字
this代表类本身的对象
this代用自身构造方法:
public class Bird {
String name;
public Bird() {
this(“企鹅”);
}
public Bird(String name) {
this.name = name;
}
}
封装优化2——构造方法
构造方法就是与类同名的方法,对象的创建就是通过构造方法完成的
★注意:
1.构造方法与类名相同
2.构造方法没有返回值
继承:
extends关键字
示例:
public class Pad extends Computer { ……… }
Scanner对象
Scanner类用来获取用户输入的内容
语法:
Scanner s = new scanner(System.in);
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取钱我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。
- next():
1、一定要读取到有效字符后才可以结束输入。
2、对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
4、next()不能得到带有空格的字符串。 - nextLine():
1、以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
2、可以获得空白。