第二章 Java语法规范
一:核心概念
java中有两个核心的概念.即类和对象.
- **类:**即抽象出来的模板,一类事物具有的总特征.比如说定义一个叫人的类,那么就有姓名,年龄,性别…属性,有吃饭,睡觉,娱乐,工作等方法.
- 对象:即类的实例,如果只有模板那么也做不了什么事,不同的人有不同的特点,此时就需要对象的出现.每一个对象可以根据自身特点定义属于自己的属性.
public class Person{
// 定义属性
...
String name;
int age;
String gender;
...
// 定义方法
...
public void eat(){
System.out.println("人吃饭");
}
}
- Tip:如果你想定义得更加具体,如定义一个Student类,可以通过继承Person来定义Student独有的属性和方法.
二:程序入口
java中以main函数作为函数入口.且格式是固定的.一个Java程序可以包含多个类,但是只能有一个类包含main方法,这个类被称为主类.
public static void main(String[] args)
java程序中的方法必须在定义在类里面.且java源文件名必须与public修饰的类名相同.一个方法必须包含修饰符,形参列表(可以为空),返回类型.
三:命名规范
- java中的类名,接口名都是首字母大写,采用大驼峰命名法,如JavaTest.
- java中包名.模块名,全小写字母
- 函数名,变量名采用首字母小写,其它单词首字母大写. 如 bubbleSort.
- 变量和函数名命名注意事项:
- 首字母不能以数字开头.
- 标识符不能以关键字命名,也不能以保留字(true,false,const)命名
- 只能由数字,字母,下划线和$组成
四:修饰符
权限修饰符
-
public,protected,缺省,private
修饰类
只能由public和缺省修饰.public修饰的类在整个模块内可用.缺省修饰的只能在本包内使用
修饰方法和属性
可由public,protected,缺省,private.
- 由public修饰的属性和方法在整个模块可见.
- 由protected修饰的属性和方法在本包内和继承的子类可见
- 由缺省修饰的属性和方法在本包内可见
- 由private修饰的属性和方法只能在本类内使用
public class Test{ // 由public修饰的类
private int a; // 由private修饰的属性
void print(){ // 由缺省修饰的方法
System.out.println("醒醒,该敲代码了!");
}
protected void sleep(){ //由protect修饰的方法
System.out.println("该睡觉了");
}
public void eat(){ //由public修饰的方法
System.out.println("KFC!");
}
}
class Student(){ // 由缺省修饰的类
...
}
其他修饰符
static,final,abstract.
static修饰属性和方法即为类属性和类方法,在加载类模板时就会存在.即不用声明类的对象就能使用.典型的代表就是main方法.在类里面不用声明类的对象即可使用.
final即"不可变的".可修饰类方法,属性.修饰的属性为不可变量,即常量.会在编译期决定.
abstract即"抽象"可修饰类,和方法.此时的类为抽象类和抽象方法.抽象方法即没有函数体的方法.
public abstract class Car{ //抽象类 abstract void Run(); // 抽象方法. }
五:引用数据类型
java中引用数据类型包括类,数组,接口,枚举,泛型.引用数据类型即存放的是对象的内存地址值.引用数据类型默认值是null.下面主要介绍一下数组最基本操作.
// 声明一个数组
int[] arr; // arr的值为null
System.out.println(arr); // null
// 数组初始化:
//方法1:
int[] a1 = {1,2,3}; //静态初始化
// 方法2:
int[] a2 = new int[3]; //动态初始化
// 获取数组长度
int lenA1 = a1.length;
// 遍历数组
//方法一:
for(int i = 0; i < a1.length; i++){
System.out.println(a1[i]); // 1 2 3
}
//方法二:增强for循环
for(int i : a1){
System.out.println(i); // 1 2 3
}
- 特别注意: 不要对值为null的引用数据类型进行任何操作!!!
int[] arr; // null
int len = arr.length; // 直接报错