在编程语言中,代码是一行一行编写的,每一行代码就是一个 语句(statement),执行特定的功能。Java中的语句必须 以“;”结尾,否则无法编译。在Java中,语句无法单独存在,而是一定结构组织起来。
类
类(class)是Java语言最基本的逻辑单位,所有代码都必须放在类名后面的花括号内,Java程序就是由一个一个类构成的。变量除了可以声明自己是哪种基本数据类型,也可以在变量前面加类名,声明自己是哪个类。
public class HelloWorld{
int a;
public void test(){
}
}
类的构成:
-
成员变量/属性
-
成员方法/函数
类就好比是一个人,方法就是用来执行消化、思考、移动等各种功能的器官,而属性是器官执行功能需要的各种物质,方法内的语句则构成了实现器官功能的组织。
属性
又叫成员变量,是用于存储数值或作为参数使用的变量或常量,比如
int a;
方法
也叫成员函数,用于执行各种操作,并返回操作的结果。
当类里面的方法在语句中被使用时,我们就说调用了这个方法。比如System.out.println();
,out是System类的一个属性,out又属于PrintStream 类,我们就是调用了PrintStream 类的println()方法。
如果不是属性,那么语句必须放在方法名后面的花括号内,否则无法编译。花括号规定了某个语句的作用范围,比如放test方法里的语句只能在方法被调用时起作用。
参数
方法类似于函数,可以向方法添加参数,放在方法名的括号内,和变量一样,需要声明自己的类型。方法内可以有参数,也可以没有参数,没有参数就在方法名后面放一个空括号。
Java方法的参数是形参,也就是说,只需要方法内声明参数类型是什么,名称是什么,不需要先进行赋值,调用方法的时候再对参数赋值。
返回值
方法执行完自己的功能后,可以返回一个数值供其他方法使用或作为结果输出。返回值的类型需要在方法名的前面声明,比如下面test方法返回的就是int类型的数值。
public int test1(){
}
如果没有返回值,就需要加保留字void,比如test2方法就没有返回值。
public void test2(){
}
return语句
如果方法有返回值,就需要方法内添加return语句,比如test3方法返回的就是一个变量。
public int test3(){
int i=1;
return i;
}
如果返回的是变量,一定要先初始化,即给变量赋一个值,否则无法编译。
方法也可以直接返回一个字面量,如
public char test4(){
return i;
}
包
包(package)是用来一个一个的类组织起来,在同一个包内,类的名称不能重复,但可以和其他包的类名重复。
一个包的下面还可以有子包(subpackage),它们是相互独立的,即子包的类名可以和父包的类名重复而不会发生冲突。子包的包名必须包含父包的报名,二者用“.”隔开。
import
如果使用同一个包内的类,那么可以直接使用,但如果使用的是其他包的类,那么就需要保留字import
将这个类引入。
后面跟包名和类名,Stack是类名,util是Stack所在包的包名,java是util包的父包。
import java.util.Stack;
如果要引入包内的全部类,那么把类名替换成“*”,比如下面引入的就是util包的所有类。
import java.util.*;
如果引入了包不同但类名相同的类,其中一个就不用import引入,而是在使用时声明包名和类名,比如下面引用了不同包的Util类,sun.nio.ch是另一个Util类的包名。
import javax.rmi.CORBA.Util;
......
Util u1;
sun.nio.ch.Util u2;
访问修饰符
如果在一个类的语句内可以使用另一个类,那么就可以说这个类可以访问另一个类。可以修饰类,方法,属性;。Java中可以利用保留字对类、方法和属性的访问权限进行限制,这类保留字就被叫访问修饰符。
public:
可以被同一个类里面的其他类访问;
可以被同一个包下的类访问;
可以被不同包下的类访问;
proetcted:
可以被同一个类里面的其他类访问;
可以被同一个包下的类访问;
如果其他类的包想访问这个类,必须是这个类的子类;
default:
如果不加任何访问修饰符,那么权限就是默认的。
可以被同一个类里面的其他类访问;
可以被同一个包下的类访问;
不能被其他包的类访问,无论是不是子类
private:
可以被同一个类里面的其他类访问;
不可以被同一个包下的类访问;
不能被其他包的类访问,无论是不是子类。
注意:
-
如果一个类不可以被访问,那么就不可以访问这个类的方法和属性。但如果一个类可以被访问,不一定可以访问这个类的方法和属性,还要看它们的访问修饰符。
-
一个.java文件内可以有多个类,但只能有一个public修饰的类,比如这里只有HelloWorld可以被public修饰。
main函数
在用户使用程序的时候,我们都需要提供一个入口来让用户可以启动这个程序。main函数是Java程序的入口,只是按照Java的编程规范必须放在类里,属于某个特定的类。函数名称是固定写法,不能改变。
public class HelloWorld{
public static void main(String[] args){
System.out.println("hello world!");
}
}
如果没有main函数,那么这个程序是无法被执行的,也就是说不会产生任何输出。
命名规范
标识符(identifier)是用户编程时使用的名字,用于给变量、常量、函数、语句块等命名。
Java的标识符可以以_、ut-8字符开头,其余可以用数字、_、ut-8字符,不能有空格,最好是用有含义的词语或缩写来命名。一般Java的标识符是用英文,不建议使用中文。
Java是大小写敏感的,类的第一个单词的首字母必须要大写,其余单词的首字母也建议大写。
包的名字全部小写,父包和子包之间加“.”来隔开,比如“java.test”,java是父包的名称,test是子包的名称。
驼峰原则:变量或属性名称第一个单词的首字母小写,其余单词的首字母小写,就像驼峰一样。