重学Java—Java程序设计结构

版权声明:未经本人许可,不得使用或转载。 https://blog.csdn.net/mykc208/article/details/81269360

首先谈程序结构之前,强调重要的一点,重要的事情说三遍:
Java是区分大小写的!!!Java是区分大小写的!!!Java是区分大小写的!!!

1、访问修饰符(access modifier):控制其他程序对这段代码的访问级别。

public:同包、同类、子类和其他包都能访问;
protected :同包、同类、子类都能访问,其他包不能访问;
default:默认访问修饰符,同包和同类(包括同类的子类)可以访问,子类(包外继承的)和其他包不能访问;
prrivate:只有同类才能访问,其他都不能访问。

2、Java命名规则:

a—项目名小写;
b—包名小写;
c—类名首字母大写,多个单词则单词首字母大写;
d—方法名与变量名首单词首字母小写,后面单词首字母大写;
e—常量名全部大写;
final修饰变量表明一旦赋值不能改变。
static final修饰类常量,这样可以在类中的多个方法中使用。
命名规则:不能以数字开头;只能是由字母、数字、下划线和$命名组成;
不能使用JAVA关键字;不能中文及拼音名。

3、注释

1)行注释://注释内容;
2)段注释:/* 注释内容 */;
3)文档(方法类等)注释:/* * 注释内容 */

4、基本数据类型与引用数据类型

基本数据类型:
共8种,4种整型,2种浮点型,一种表示Unicode编码的字符单元的字符类型char,
一种表示真值的boolean类型。
1位=8字节
整形:byte(-2的7次方–2的7次方-1,8位);
short(-2的15次方–2的15次方-1,16位);
int (-2的31次方–2的31次方-1,超过20亿,32位);
long(-2的63次方–2的63次方-1,64位);
浮点型:float,32位;
double,64位;
boolean:只有true和false,默认值是false;
char:16位Unicode字符,0–2的16次方-1。
引用数据类型:
包括类、接口、数组、枚举与注解等。

5、数学函数与常量

Math.sqrt(x);求平方根
double y=Math.pow(x,a);x的a次幂
三角函数
对数
Math.PI,Math.E 表示PI 和 e 常量的近似值

6、数值类型之间的转换

• 若两个操作数中有一个是 double类型 , 另一个操作数就会转换为 double 类型。
• 否则 ,若其中一个操作数是 float 类型 , 另一个操作数将会转换为 float 类型 。
• 否则 ,如果其中一个操作数是 long 类型, 另一个操作数将会转换为 long 类型 。
• 否则 , 两个操作数都将被转换为 int 类型 。

7、强制类型转换

eg:double x=9.97;
int y=(int)x;
如果要对浮点数进行舍入运算,需要用到Math.round(x)方法,返回的是long类型;

8、枚举类型

enum Size { SMALL , MEDIUM , LARGE , EXTRA . LARCE } ;
Size s=Size.SMALL;
Size类型只能存储这个类型声明中给定的某个枚举值或者null值,
null表示这个变量没有设置任何值。

9、字符串

如果需要把多个字符串放在一起,用一个定界符分隔,可以用join方法:
String all=String.join(“/”,”S”,”M”,”L”);
则all为“S/M/L”;

由于不能修改Java字符串中的字符,所以将String类对象称为不可变字符串。
缺点:创建一个字符串的效率可能降低;
优点:编译器可以让字符串共享。

空串”“是长度为0的字符串,内容为空;
而null表示没有对象与该变量关联。

采用字符串连接的方式构建字符串效率比较低,每次连接字符串,都会构建一个新的String对象,既耗时又浪费空间,使用StingBuffer类就可以避免此问题。
若需要用许多小段的字符串构建一个字符串,
首先构建一个空的字符串构建器:
StringBuilder builder=new StringBuilder();
当每次需要添加一部分内容时,就调用append方法:
builder.append(ch);
builder.append(str);
当需要构建字符串时就调用toString()方法,就可以得到一个String对象。
String completedString =builder.toString();

文件输入与输出

要想对文件进行读取,就需要用File对象构造一个Scanner对象:
Scanner in=new Scanner(Paths.get(“myfile.txt”),”UTF-8”);
若文件名中包含反斜杠,就要记住在每个反斜杠之前再加一个额外的反斜杠:
“c:\mydirectory\myfile.txt”。

要想写入文件,就需要构造一个PrintWriter对象。在构造器中,只需要提供文件名:
PrintWriter out=new PrintWriter(“myfile.txt”,”UTF-8”);
若文件不存在,则创建该文件。

多重选择:switch语句

case标签可以是:
类型为char、byte、short或int的常量表达式。
枚举常量。
还可以是字符串字面量。(JavaSE7开始)

当在switch语句中使用枚举常量时,不必在每个标签中指明枚举名,可以由switch的表达式值确定:
Size sz=……;
switch(sz)
{
case SMALL:

break;

}

增强for循环

用来依次处理数组中的每个元素(其他类型的元素集合亦可),而不必为指定下标值而分心。
eg:for(int element:a)
这样循环语句显得更加简洁,更不易出错(不必为了指定下标值而操心).

数组拷贝

若希望将一个数组的所有值拷贝到一个新的数组中去,就要使用Arrays类的copyOf方法:
int[] copiedLuckyNumbers=Arrays.copyOf(luckyNumbers,luckyNumbers.length);
第2个参数是新数组的长度,通常用来增加数组的大小:
luckyNumbers=Arrays.copyOf(luckyNumbers,2*luckyNumbers.length);

参考:《Java核心技术》第10版

猜你喜欢

转载自blog.csdn.net/mykc208/article/details/81269360