java程序设计简单程序分类_3 Java的基本程序设计结构
3.1 一個簡單的Java應用程序
public classFirstSample {public static voidmain(String[] args) {
System.out.println("We will not use 'Hello World'");
}
}
Java對大小寫敏感。
關鍵詞public,訪問修飾符。
關鍵詞class,類。
類名FirstSample,必須以字母開頭,駱駝命名法。
源文件以.java作為擴展名。
每個Java程序都必須有一個main方法。
{ }一對花括號表示方法體的開始與結束。
.號用于點用方法。
3.2 注釋
Java中,有三種書寫注釋的方式。
最常見的是使用//,其注釋內容為從//開始到本行結尾。
System.out.println("We will not use 'Hello World'"); //is this too cure?
當需要長篇注釋時,既可以在每行的注釋前面標記//,也可以用/* 和 */將一段比較長的注釋括起來。
第三種注釋可以用來自動地生成文檔。這種注釋以/**開頭,以*/結束:
/*** this is first program in this chapter
*@version1.1 2020-04-20
*@authorayor*/
3.3 數據類型
Java是一種強類型語言,必須為每一個變量聲明一種類型。在Java中,一共有8種基本類型,其中有4種整型,2種浮點,1種用于表示unicode編碼的字符單元的字符類型char和一種表示真值的boolean類型。
3.3.1 整型
int 4字節,short 2字節,long 8字節,byte 1字節。
長整型后綴L, 十六進制數值前綴0x,八進制前綴0,二進制前綴0b。
3.3.2 浮點類型
float 4字節 有效數值精度6~7位,double 8字節,有效數值精度15位。
double 表示的數值精度是float的兩倍,絕大多數應用程序采用double類型。
float類型后面有一個后綴F,double類型也可以后綴D,沒有F后綴默認為double類型。
3.3.3 char類型
char類型用于表示單個字符。通常用于表示字符常量。
轉義序列符號 \u, 可以出現在字符常量或字符串的引號之外,其他轉義序列不可以。
\b 退格;\t 制表;\n 換行;\r 回車;
Java中,char類型用utf-16編碼描述一個代碼單元。
3.3.4 boolean類型。
布爾類型有兩個值,true 和 false。
3.4 變量
Java 中,每一個變量屬于一種類型type。
doublesalary;intvacationDays;longearthPopulation;boolean done;
3.4.1 變量初始化
未被初始化的變量不能使用。
intvacationDays;
vacationDays= 12;int vacationDays = 12;
3.4.2 常量
在Java中,利用關鍵字final指示常量。
final double CM_PER_INCH = 2.53;
final表示這個變量只能被賦值一次,一旦被賦值之后,就不能夠再改變了。習慣上,常量名使用全大寫。
在Java中,希望某個常量在一個類的多個方法中使用,稱之為類常量。
public static final double CM_PER_INCH = 2.54;
類常量的定義位于main方法的外部,而且一個常量被聲明為public,其他類的方法也可以使用這個常量。
3.5 運算符
算數運算符 +、-、x、/,整數求余操作%。
x += 4, 等價于 x = x + 4。
3.5.1 自增運算符與自減運算符
n++, n--,++n,--n。
3.5.2 關系運算符與boolean運算符。
==;!=;< ; >; >=; <=;
&& 與;|| 或;!非。
三元運算符,x < y ? x : y。
3.5.3 位運算符
3.5.4 數學函數與常量
Math類三角函數,反函數,平方根函數sqrt方法。
3.5.5 數值類型之間的轉換
無信息損失的轉換——byte-short-int-long(double)
3.5.6 強制類型轉換
強制類型轉換 cast
double x = 9.99;int nx = int(x);
得到的變量值為9。
為得到最接近的整數,需要使用Math.round方法:
double x = 9.997;int nx = (int)Math.round(x);
nx的值為10。
3.5.7 括號與運算符級別
如果不使用圓括號,就按照給出的符號運算符優先級次序進行運算,同一級別的運算符按照從左到右的次序進行計算。除了右結合運算符之外。
3.5.8 枚舉類型
變量的取值只在有限的集合內。
enumSize {SMALL, MEDIUM, LARGE, EXTRA_LARGE};
Size a= Size.MEDIUM;
3.6 字符串
從概念上講,字符串就是Unicode字符序列。
Java并沒有內置字符串類型,而是在標準類庫提供了一個預定義類,很自然叫做String。每個用雙引號括起來的字符串都是String類的一個實例。
3.6.1 子串
String greeting = "Hello";
String s= greeting.substring(0,3);
3.6.2 拼接
String expletive = "Expletive";
String PG13= "deleted";
String message= expletive + PG13;
將一個字符串與一個非字符串的值進行拼接時,后者被轉化為字符串。
3.6.3 不可變字符串
編譯器可以將字符串共享。共享優先于提取,拼接。
3.6.4 檢測字符串是否相等
s.equals(t);
"hello".equals(greeting);
3.6.5 空串與null串
空串是一個Java字符串對象,長度為0,內容為空。
null串表示,沒有對象與該變量關聯。
if (str.length() == 0);if (str.equals("");if(str == null));if (str != null && str.leng() != 0);
3.6.6 代碼點與代碼單元
length方法返回采用utf-16編碼表示的給定字符串的代碼單元數量。
3.6.7 字符串api
Java的String類包含了50多種方法。
3.6.8 閱讀聯機api 文檔
3.6.9 構建字符串
StringBuilder builder = newStringBuilder();
builder.append(ch);
builder.append(str);
String completeString= builder.toString();
3.7 輸入與輸出
3.7.1 讀取輸入
importjava.util.Scanner;public classInputTest {public static voidmain(String[] args) {
Scanner in= newScanner(System.in);
System.out.println("what is your name?");
String name=in.nextLine();
System.out.println("How old are you?");int age =in.nextInt();
System.out.println("My name is " + name + " and my age is " + age +"。");
}
}
3.7.2 格式化輸出
3.7.3 文件的輸入與輸出
Scanner = new Scanner(Paths.get("myfile.txt));
PrintWriter out= new PrintWriter("myfile.txt);
讀入文件可能導致異常,需要拋出FileNotFoundException。
3.8 控制流程
3.8.1 塊作用域
塊,指由一對花括號括起來的若干條簡單的Java語句。一個塊可以嵌套到另外一個塊當中去。但是,不能在嵌套到兩個塊當中聲明同名的變量。
3.8.2 條件語句
if(condition)statement;
if(condition)statement1 else statement2;
3.8.3 循環
while(condition)statement;
do statement while(condition);
importjava.util.Scanner;public classRetirement {public static voidmain(String[] args) {
Scanner in= newScanner(System.in);
System.out.print("How much money do u need to retirement?");double goal =in.nextDouble();
System.out.print("How much money do u contribute every year?");double payment =in.nextDouble();
System.out.print("Interest rate in %: ");double interestRate =in.nextDouble();double balance = 0;int years = 0;while (balance
balance+=payment;double interest = balance * interestRate / 100;
balance+=interest;
years++;
}
System.out.println("You can retire in " + years + "years.");
}
}
importjava.util.Scanner;public classRetirement2 {public static voidmain(String[] args) {
Scanner in= newScanner(System.in);
System.out.print("How much money will you contribute every year?");double payment =in.nextDouble();
System.out.print("Interest rate in %: ");double interestRate =in.nextDouble();double balance = 0;int year = 0;
String input;do{
balance+=payment;double interest = balance * interestRate / 100;
balance+=interest;
year++;
System.out.printf("After year %d, your balance is %,2f%n", year, balance);
System.out.print("Ready to retire?(Y/N)");
input=in.next();
}while (input.equals("N"));
}
}
3.8.4 確定循環
importjava.util.Scanner;public classLotteryOdds {public static voidmain(String[] args) {
Scanner in= newScanner(System.in);
System.out.print("How many number do you want to draw?");int k =in.nextInt();
System.out.print("what is the highest number can you draw");int n =in.nextInt();int lotteryOdds = 1;for (int i = 1; i <= k; i++) {
lotteryOdds= lotteryOdds * (n - i + 1) /i;
}
System.out.println("Your odds are 1 in " + lotteryOdds + ". Good Luck!");
}
}
3.8.5 多重選擇switch語句
switch case break default;
3.8.6 中斷控制流語句
break 退出循環語句;
帶標簽的break 語句,跳出多層嵌套; break read_data;
contine 返回到最內層循環到頂層。
3.9 大數值
如果基本的整型和浮點類型都不能夠滿足需求,可以用Java.math包里面的兩個很有用的類:BigInteger和BigDecimal。可以實現任意精度的整型和浮點的運算。
BigInteger a = BigInteger.valueof(100);
BigInteger c=a.add(b);
BigInteger d= c.multiply(b.add(Biginteger.valueof(2)));
3.10 數組
int[] a;int[] a = new int[100];for(int i = 0, i < 100 , i++)
a[i]= i;
3.10.1 foreach循環
for(intelement : a)
System.out.println(element);
3.10.2 數組初始化以及匿名數組
int[] smallPrimes = {2, 3, 5, 7, 11, 13};new int[] {1, 3, 5, 7, 9};
samllPrimes= new int[] {1 ,2 ,3 ,4 ,5};int[] anonymous = {2, 4, 6, 9, 12};
smallPrimes= anonymous;
3.10.3 數組拷貝
int[] copied = Arrays.copyof(luckyNumbers, luckyNumer.length);
這個方法通常用來增加數組的長度
int[] copied = Arrays.copyof(luckyNumbers, 2 * luckyNumer.length);
3.10.4 命令行參數
public classMessage {public static voidmain(String[] args) {if (args[0].equals("-h"))
System.out.print("Hello, ");else if (args[0].equals("-g"))
System.out.print("Goodbye, ");for (int i = 1; i < args.length; i++)
System.out.print(" " +args[i]);
System.out.println("!");
}
}
3.10.5 數組排序
int[] a = new int[10000];
Arrays.sort(a);
3.10.6 多維數組
多維數組將采用多個下標訪問數組元素,它適用于表示表格或者更加復雜的排列形式。
3.10.7 不規則數組
Java其實沒有多維數組,只有一維數組,多維數組是“數組的數組”。
新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!總結
以上是生活随笔為你收集整理的java程序设计简单程序分类_3 Java的基本程序设计结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 时频分析:短时傅里叶变换实现(1)
- 下一篇: 时频分析:短时傅里叶变换实现(2)