Java程序的基本规则
- Java程序必须以类(class)的形式存在,类是Java程序中的最小单位。Java程序不允许可执行性语句、方法等独立成分存在,所有的程序部分都必须放在类定义里。
- 如果某个类能够被解释器直接解释执行,则这个类中必须包含main方法,且main方法必须使用public static void修饰,且main方法的形参必须是字符串数组类型(String【】 args是字符串数组的形式)。
public static main(String[] args)
- Java源文件命名:通常情况下Java程序源文件的主文件名任意。但有一种情况例外:如果Java程序源代码里定义了一个public类,则该源文件的主文件名必须与public类(也就是该类定义使用了public关键词修饰)的类名相同。由于Java程序源文件的文件名必须与public类的类名相同,因此,一个Java源文件里最多只能定义一个public类(public class xxx(文件名))。
public class Main{}
Java面向对象特征
- Java是纯粹的面向对象编程语言,在Java语言中,除了8个基本数据类型值之外,一切都是对象,而对象就是面向对象程序设计的中心。
- Java语言中八个基本数据类型值有:
(图来源于知乎)
(该图来源博主:深知她是一场梦)
- Java通过为对象定义方法描述对象的行为;对象实现了数据和操作的结合。
- 下图描述了类与对象的关系:
- 定义类时可使用成员变量来描述该类对象的数据,可使用方法来描述该类对象的行为特征。(我个人觉得有点像结构体,方法就类似于函数)。
然后对于流程控制,顺序结构、分支结构以及循环结构和C语言的大体上差不多,唯一有区别的一种是foreach语句;可使用foreach直接遍历整个数组,比普通方法要快很多: -
for(String S : str) { System.out.println(s); }
此外还可以使用标签去使用break结束外层循环:
-
outer: for( ; ; ) { for( ; ;) { if(true) break outer; } }
Java数组:
-
可以使用两种方式定义数组:
type[] arraysNames; type arrayNames[];//常使用第一种方法定义数组
- Java数组初始化也有两种方式:
arraysNames = new type[]{elem1,elem2,elem3};//静态舒适化数组,当然也可以简写成下面的形式
type[] arraysNames = {"elem1","elem2","elem3"};
//动态初始化只指定数组长度,由系统为数组分配制定初始值
arraysNames = new type[length];
- 所有数组都带有一个length属性,通过该属性可以直接获取数组长度。
System.out.println(arraysNames.length);
Java的三种访问控制修饰符:
- 优先级:
- private->default(不加任何访问控制符的访问控制级别)->protected->public
- 一个类可以有多个构造函数,只要他们的参数表不同
如:
public void test(){
}
public void test(String msg){
}
关于访问控制符的使用,存在如下几条原则:
- 类里绝大部分成员变量都应该用private修饰,只有一些static修饰的、类似全局变量的成员变量,才可能考虑使用public修饰。除此之外,有些方法只用于辅助实现该类的其他方法,这些方法被称为工具方法,工具方法也应该使用private修饰。
- 如果某个类主要用作其他类的父类,该类里包含的大部分方法可能希望被其子类重写,而不想被外界直接调用,则应该使用protected修饰这些方法。
- 希望暴露出来给其他类自由调用的方法应该使用public修饰。因此,类的构造器通过使用public修饰,从而允许在其他地方创建该类的实例。因为外部类通常希望被其他类自由使用,所以大部分外部类都使用public修饰。