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其实没有多维数组,只有一维数组,多维数组是“数组的数组”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值