>IDEA
**快捷鍵:psvm 創(chuàng)建main方法**
sout 打印命令
IDEA優(yōu)化
單行注釋//? 多行注釋/* */?
文檔注釋/** *@Author *@Description */
標(biāo)識(shí)符:類名,變量名,方法名,以(a-z)(A-Z)($)(_)開(kāi)頭,首字母之后可以任意(a-z)(A-Z)(0-9)($)(_)組合
關(guān)鍵字 public class static void
java新建的類名不能是關(guān)鍵詞
java強(qiáng)類型語(yǔ)言,區(qū)分大小寫,所有變量必須先定義才能使用
整數(shù)四種表示類型:byte short int(最常用) long(要在數(shù)字后面加個(gè)L)
小數(shù):浮點(diǎn)型 float(在數(shù)字后面加個(gè)F) double()
字符 char(代表一個(gè)字符)
字符串 String? ? String不是關(guān)鍵字,是一個(gè)類
布爾值 boolean flag = true
引用類型:類,接口,數(shù)組? String是引用類型
整數(shù)拓展:二進(jìn)制0b 十進(jìn)制 八進(jìn)制0 十六進(jìn)制0x
浮點(diǎn)數(shù)拓展:BigDecimal
字符拓展:強(qiáng)制轉(zhuǎn)換,將字符轉(zhuǎn)化為數(shù)字? ? char mm="a"; System.out.println((int)mm);
強(qiáng)制轉(zhuǎn)換:(類型)變量名? 高--低
自動(dòng)轉(zhuǎn)換:低--高? byte>short>char>int>long>float>double
不能對(duì)布爾進(jìn)行轉(zhuǎn)換
變量作用域:類變量,實(shí)例變量,局部變量
只在一個(gè)類里面,方法的外面 static int mm = 1;? 可以直接引用//類變量
只在一個(gè)類里面,方法的外面;可以不賦值,會(huì)有默認(rèn)值 int mm = 1; 需要引用new 類名()來(lái)引用 //實(shí)例變量
只在一個(gè)方法里定義和使用? int mm = 1; //局部變量
常量final
修飾符,不存在先后順序
三元運(yùn)算符? X?Y:Z
Scanner對(duì)象:獲取終端輸入
Scanner scanner =new Scanner(System.in);
if (scanner.hasNext()){
System.out.println(scanner.next());
}
scanner.close();
next和nextLine? ? nextLine用得較多
java? if(a==b){}? ? python? if a==b:? ? shell? if [[ $a == $b ]];then
m=m+1? ? java? m++? ? python? m+=1? ? shell? m++
if選擇結(jié)構(gòu) if(){} else if(){} else{}
switch選擇結(jié)構(gòu)? switch(){ case A:語(yǔ)句; default:語(yǔ)句 }? break; case穿透現(xiàn)象
while循環(huán)結(jié)構(gòu)? ? while(){}? ? while(true){}
do while循環(huán)? ? do{}while(){}
for循環(huán)? ? for(初始化;布爾表達(dá)式;更新){}? ? 快捷鍵100.for
死循環(huán)for(;;){}
java? for(int x:numbers)? ? python? for x in numbers
方法:public static int add(int a,int b){ return a+b }
值傳遞(java)和引用傳遞
方法的重載
javac .java文件生成.class文件? java .class文件可以直接執(zhí)行.class
public static void main(String[] args)上面,args是一個(gè)數(shù)組,可以通過(guò)命令行傳入?yún)?shù)獲取,args.length數(shù)組長(zhǎng)度
可變參數(shù),不定項(xiàng)參數(shù)? public void test(int... i){}? ...代表i是一個(gè)可變參數(shù),只能放在最后面
遞歸
數(shù)組:相同類型的有序集合,每一個(gè)數(shù)據(jù)是數(shù)組元素
類型名[] 變量名;? or? 類型名 變量名[]; 使用new來(lái)創(chuàng)建數(shù)組
int[] nums = new int[10];可以存放10個(gè)int類型的數(shù)字
數(shù)組對(duì)象保存在堆中
多維數(shù)組 int[][] array = {{1,2},{3,4},5,6}
數(shù)組工具類Arrays.toString(a) 可以打印整個(gè)數(shù)組
Arrays.sort(a) 數(shù)組升序排序
面向?qū)ο缶幊?/p>
public String sayhello(){ return "hello.world"; } 定義的方法是String類型,就需要返回字符串
public void sayhello(){ return; } 定義的方法是void類型,返回空
靜態(tài)方法 static 在其他的java.class可以直接調(diào)用
非靜態(tài)方法? 在其他的java.class調(diào)用,需要實(shí)例化這個(gè)類new
一個(gè).java文件里面只能有一個(gè)public class類,但是可以有多個(gè)class類
創(chuàng)建一個(gè)類對(duì)象, new 一個(gè)類()
類中方法指代對(duì)象本身? java? this? ? python? self
構(gòu)造器
在一個(gè)類里面, 定義一個(gè)有參構(gòu)造之前必須定義一個(gè)無(wú)參構(gòu)造
new本質(zhì):在調(diào)用構(gòu)造器
方法中,屬性私有 private int i d
繼承extends
java類中只有單繼承,沒(méi)有多繼承? public class Student extends Person
四個(gè)修飾符:public protected default private
重寫都是方法的重寫,和屬性無(wú)關(guān)
重寫@Override 需要有繼承關(guān)系,非靜態(tài)方法會(huì)被重寫,靜態(tài)方法不會(huì)被重寫 ,修飾符只能是public,不能是private
多態(tài):是方法的多態(tài),屬性沒(méi)有多態(tài)
static,final,private不能重寫
用static定義方法,是全局的方法,不需要new。用static定義變量,可以獲取類變量?