4.1 类结构

  如下代码:

public class Test {
	public static void main(String[] args){
		System.out.println("hello world!");
	}

}

  结构为:

public class Test { 
	
}

   因为Java 是面向对象的语言,一个程序的基本单位就是 class,class 是关键字,这里定义的 class 名字就是 Test

注:

  • 类名命名规范:
  • 1)类名必须以英文字母开头,后接字母,数字和下划线的组合。
  • 2)习惯以大写字母开头。
  • 3)类的命名要有其意义,比如我这个类名为 Student,则表示这是一个学生类,不可随便命名为 A、B、C。
  • public 是修饰符,表示这个类是公开的。
  • 一个文件只能存在一个 public class,可以有多个 class,比如:
public class Test {
		public static void main(String[] args) {
			System.out.println(Node.value)
		}
	}
	class Node {
		public static String value = "node";
	}

4.2 方法

  在类里面,可以定义若干个方法,但是程序入口有且只有一个。

public class Test {
	public static void main(String[] args) {  // 程序入口
		// 代码...
	}
}
  • 这里的方法名为 main;
  • 返回值类型为 void,表示没有任何返回值;
  • 上述的 public 既可以修饰类,也可以修饰方法;
  • static 是关键字,修饰的方法表示静态方法, 关于这个,讲解《内存分析》的时候再说明;
  • main 方法括号里的是参数,args 是参数名(可以其他命名),String[] 表示该参数是 String 类型的数组;main 方法固定这样写。

注:方法名命名规范:

  • 方法名命名和类名命名规范类似,只是方法名的首字母要小写(大写也不会报错,只不过合格的程序员要遵循这种规范)。
  • 方法名命名要有其意义,如 getMax(),表示这个方法的作用是获取最大值;不可随便命名为 a()、b()、c()。

4.3 语句

  在方法内部,语句才是真正的执行的代码,每条语句必须以分号结束。

public class Test {
	public static void main(String[] args) {
		System.out.println("hello world!"); // 输出语句
	}
}

输出语句:

System.out.println() 为输出语句,即括号内的会打印到控制台上。

4.4 注释

  在 Java 程序中,注释是一种给人阅读的文本,不是程序的一部分,所以编译器会自动忽略注释。

  优秀的程序员必须习惯写注释,告知这个类、这个方法是干什么的,这个属性是干什么的,让人一目了然。我们要清楚一点,3 个月前的你和 3 个月后的你完全不是同一个人。不写注释,读起代码十分费劲。

  Java 有 3 种注释。

(1) 单行注释

   以双斜线开头,直到这一行的结尾结束:

public class Test {
	public static void main(String[] args) {
		System.out.println("hello world!"); // 这是单行注释
	}
}

(2) 多行注释

  以 /* 星号开头,以 */ 结束,可以有多行:

public class Test {
	public static void main(String[] args) {
		System.out.println("hello world!"); // 这是单行注释
	}
	/*
	这是多行注释,
	获取最大值
	*/
	public static int getMax(int num1, int num2) {
		return num1 > num2 ? num1 : num2;
	}
}

(3)另一种多行注释

  以 /** 开头,以 */ 结束,如果有多行,每行通常以星号开头,需要写在类和方法的定义处,可以用于自动创建文档。

/**
* 这是一个测试类
* @auther pkyShare
*/
public class Test {
	public static void main(String[] args) {
		System.out.println("hello world!"); // 这是单行注释
	}
	/**
	* 获取最大值
	* @param num1 
	* @param num2
	* @return int
	*/
	public static int getMax(int num1, int num2) {
		return num1 > num2 ? num1 : num2;
	}
}

特别注意:虽然 Java 程序对格式没有明确的要求,多几个空格或者回车不影响程序的正确性,但是我们要养成良好的编程习惯。

  • 1)命名规范必须遵循以上规则。
  • 2)注意代码要对齐,如正确写法:
public class Test {
	public static void main(String[] args) {
		System.out.println("hello world!"); // 这是单行注释
	}
	public static int getMax(int num1, int num2) {
		return num1 > num2 ? num1 : num2;
	}
}

  不要写成如下:

public class Test {
public static void main(String[] args) {
System.out.println("hello world!"); // 这是单行注释
	}
public static int getMax(int num1, int num2) {
return num1 > num2 ? num1 : num2;
	}
}

  • 3)在写表达式的时候,比如 >、=、< 这些表达式符号时,两边的变量最好空格,如a > b,这是一种优雅的代码。尽量不要写成 a>b。

4.5 关键字

  上述提到 public、class、static 等这些都是关键字,那 Java 有哪些关键字呢?如下表所示:

定义数据类型的关键字

class

void

byte

short

int

long

float

double

char

boolean

interface

定义流程控制的关键字

if

else

switch

case

default

while

do

for

break

continue

return

定义访问权限修饰符的关键字

public

protected

private

定义类、方法、变量修饰符的关键字

abstract

final

static

synchronized

定义类与类之间关系的关键字

extends

implements

定义访问修饰符的关键字

true

false

null

定义建立实例及引用实例,判断实例的关键字

new

this

super

instanceof

异常处理的关键字

try

catch

finally

throw

throws

包的关键字

package

import

  另外 Java 还有 3 个保留字,它们不是关键字,而是文字。包含 Java 定义的值。和关键字一样,它们也不可以作为标识符使用。

保留字

true

false

null

  这么多关键字我们到底该怎么记怎么学,这不用着急,随着深入学习,这些关键字都会一一掌握。

4.6 标识符

  什么是标识符?就是程序中我们自己命名的,比如上述类名,方法名和变量名等这些都是标识符。它由英文小写字母、数字字符、$ 和 _ 组成。

  在这里统一一下命名规则:

  • 不能以数字开头
  • 不能是 Java 的关键字和保留字
  • 区分大小写
  • 驼峰式写法
  • 见名知义

  比如:Student(学生)、Teacher(老师)、Car(车)、getMax(获取最大值)

4.7 常量与变量

(1)常量

  固定不变的数据。

(2)变量

  用于存储程序执行中用到的数据,存储的数据时可改变的。

(3)定义格式

  • 变量:数据类型 变量名 = 初始化值;    如:int num = 4;
  • 常量:
  • 数据类型 fianl static 常量名 = 初始化值; 这是静态常量。    如:public static final double PI = 3.14;
  • 数据类型 final 常量名 = 初始化值; 这是普通常量。    如:public final int x= 3;
  • 还有其他定义常量的方式,之后会讲解。

4.8 运算符

  我们学习数学也知道,+、- 、*、/、>、=、< 这些运算符,这里需要区分一下:

(1)赋值运算符(=、+=、-=、*=、/=、%=)

i :int a = 3;
ii :int b = a;
iii :a += 2;
  • = 称为赋值,如上述中的意思是将 3 赋值给 a;将 a 赋值给 b(前提是 a 必须初始化)。
  • +=,如 iii 中,一般可写成 a = a + 2;同理 -=、*=、/=、%= 一样的道理。

注:

short a = 3;
a += 3;
short b = 3;
b = b + 3;

默认转换(隐式转换)和强制转换的概念。

  • 隐式转换:小类型转成大类型,联想上篇文章说到数据类型的范围,由小到大则为隐式转换。代码中 b = b + 3,由于 3 默认是 int 类型,编译器会默认将 b + 3 隐式转换为 int 类型,然后 int 类型的数据赋值给 short 类型(即大类型 --> 小类型),因此就编译不通过。
  • 强制转换:大类型转成小类型。
  • 格式为 目标类型 变量名=(目标类型)(被转换的数据);
  • 代码中 a += 3,等价于 a =(short)(a + 3),强制将 a + 3 转为 short 类型,因此编译通过。
  • 进行强制转换时需要谨慎(考虑范围)。

(2)算术运算符(+、-、*、/、%、++、–)

i :int a = 3;
ii :int b = a++;
iii :int c = ++a;
iv :int d = (a++) + (++a) + (a*10);
v :int e = a / 2;
vi :int f = a % 2;
  • ++ 相当于 + 1,但需要注意前置和后置的区别,
  • 如 ii 中,是将 a 赋值给 b,然后语句结束后 a 再 + 1,比如 a 初始值为 3,执行 ii 后,b 值为 3,a 最后 + 1 值为 4;
  • 如 iii 中,是 a 先 + 1 值为 4,然后再将 a 的值赋值给 c ,c 值为 4。(这里跳过 ii 讲解)
  • / 表示取整的意思,对于 int 类型,如 v 中,3 / 2 得 1 余 1 ,取商 1。
  • % 表示取模的意思,对于 int 类型,如 vi 中,3 % 2 得 1 余 1 ,取余数 1。

输出语句内的运算:

System.out.println(1 + 1 + “1”);   // 输出为 21;
   System.out.println(“1” + 1 + 1);   // 输出为 111;


  这里的 + 号有两种含义:
  (1)加号用于基本数据类型,表示加法运算符。
  (2)加号用于 String 类型时,表示连接符。
  1 + 1 + “1”,先执行 1 + 1 为 2,然后 2 再和 “1” 连接,则变成字符串 “21”;
   “1” + 1 + 1,先执行 “1” + 1 连接成字符串 “11”,然后字符串 “11” 再和 1 连接变成字符串 “111”。

(3)关系运算符(>、==、<、>=、<=、!=)

  != 表示“不等于”。关系运算符的结果是 boolean 类型,true 或者 false。

int a = 3;
int  b = 3;
System.out.println(a == b);

注:== 不要写成 =。

(4)逻辑运算符

  &(与) 、|(或) 、!(非)&&(短路与)、||(短路或)、^(异或)

说明

• &:一个为假,则为假,逻辑与,从左往右判断,直到结尾才停止。如 2 > 1 & 3 < 1 & 0 < 1,这个一直判断到 0 < 1 才返回 false。
• &&:一个为假,则为假,短路与,从左往右判断,当遇到 false 则停止判断。如 2 > 1 & 3 < 1 & 0 < 1,判断到 3 < 1 则立即返回 false。
• | :一个为真,则为真,逻辑或,从左往右判断,直到结尾才停止。
• || :一个为真,则为真,逻辑或,从左往右判断,当遇到 true 则停止判断。
• ! :非 false 则 true,非 true 则 false。
• ^ :两个不同,则为 true,相同则为 false。

(5)三目运算符

  (关系表达式) ? 表达式1 : 表达式2;

  • 如果关系表达式结果为 true,运算后的结果是表达式1;
  • 如果关系表达式结果为 false,运算后的结果是表达式2

如:

int a = 3;
int b = 4;
int c = (a > 5) ? a : b;

  最终 c 值为 4。
  如 : 求 三个数的最大值,用三目运算符表示。

4.9 表达式

   操作数 + 运算符,组成一个表达式。如 3 + 4,这是一个加法运算, + 就是运算符,3、4 就是参与运算的操作数,3 + 4 整体就是一个算术表达式。

4.10 转义字符(\)

  一些字母前加“\”,表示转移字符。直接了解如下常见转义字符的作用。

符号

作用

\n

换行

\t

水平制表

\’

单引号

\”

双引号

\\

产生一个斜杆

  例子:

(1)输出语句不用“ln”进行换行(输出语句的 ln 表示换行的意思)。

System.out.print("姓名:pkyShare\n年龄:**\n学校:*****");

java class名字 java class的name格式_java class名字

(2)使用制表符优化显示效果

System.out.println("姓名\t\t年龄\t学校");
System.out.println("pkyShare\t**\t*****");

java class名字 java class的name格式_Java_02

  其他的自行尝试