java之基础语法
本来不想写这个的,浪费时间。谁让我有强迫症!!!本文参考自 https://www.runoob.com/java/java-basic-syntax.html 话不多说,直接开整。
一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。
- 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
- 类:类是一个模板,它描述一类对象的行为和状态。
- 方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。
- 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。
1.第一个java程序
1 public class HelloWorld { 2 /* 第一个Java程序 3 * 它将输出字符串 Hello World 4 */ 5 public static void main(String[] args) { 6 System.out.println("Hello World"); // 输出 Hello World 7 } 8 }
程序结构介绍
2.如何保存、编译以及运行这个程序
- 打开代码编辑器,把上面的代码添加进去;
- 把文件名保存为:HelloWorld.java;
- 打开 cmd 命令窗口,进入目标文件所在的位置,假设是 C:\
- 在命令行窗口输入 javac HelloWorld.java 按下回车键编译代码。如果代码没有错误,cmd 命令提示符会进入下一行(假设环境变量都设置好了)。
- 再键输入 java HelloWorld 按下回车键就可以运行程序了
你将会在窗口看到 Hello World
3.基本语法
编写 Java 程序时,应注意以下几点:
- 大小写敏感:Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的。
- 类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass 。
- 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
- 源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错误)。
- 主方法入口:所有的 Java 程序由 public static void main(String[] args) 方法开始执行。
(1)、Java 对象和类
- 对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
- 类:类是一个模板,它描述一类对象的行为和状态,如下类的结构
一个类可以包含以下类型变量:
- 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
- 成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
- 类变量:类变量也声明在类中,方法体之外,但必须声明为 static 类型。
一个类可以拥有多个方法,在上面的例子中:eat()、run()、sleep() 和 name() 都是 Dog 类的方法。
(2)、构造方法
每个类都有构造方法。如果没有显式地为类定义构造方法,Java 编译器将会为该类提供一个默认构造方法。在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。下面是一个构造方法示例:
1 public class Puppy{ 2 public Puppy(){ 3 } 4 5 public Puppy(String name){ 6 // 这个构造器仅有一个参数:name 7 } 8 }
(3)、创建对象
对象是根据类创建的。在Java中,使用关键字 new 来创建一个新的对象。创建对象需要以下三步:
- 声明:声明一个对象,包括对象名称和对象类型。
- 实例化:使用关键字 new 来创建一个对象。
- 初始化:使用 new 创建对象时,会调用构造方法初始化对象。
下面是一个创建对象的例子:
1 public class Puppy{ 2 public Puppy(String name){ 3 //这个构造器仅有一个参数:name 4 System.out.println("小狗的名字是 : " + name ); 5 } 6 public static void main(String[] args){ 7 // 下面的语句将创建一个Puppy对象 8 Puppy myPuppy = new Puppy( "tommy" ); 9 } 10 }
(3)、访问对象中的变量和方法
1 public class Puppy{ 2 int puppyAge; 3 public Puppy(String name){ 4 // 这个构造器仅有一个参数:name 5 System.out.println("小狗的名字是 : " + name ); 6 } 7 8 public void setAge( int age ){ 9 puppyAge = age; 10 } 11 12 public int getAge( ){ 13 System.out.println("小狗的年龄为 : " + puppyAge ); 14 return puppyAge; 15 } 16 17 public static void main(String[] args){ 18 /* 创建对象 */ 19 Puppy myPuppy = new Puppy( "tommy" ); 20 /* 通过方法来设定age */ 21 myPuppy.setAge( 2 ); 22 /* 调用另一个方法获取age */ 23 myPuppy.getAge( ); 24 /*你也可以像下面这样访问成员变量 */ 25 System.out.println("变量值 : " + myPuppy.puppyAge ); 26 } 27 }
编译并运行上面的程序,产生如下结果: 小狗的名字是 : tommy 小狗的年龄为 : 2 变量值 : 2
(4)、源文件(.java文件)声明规则
- 一个源文件中只能有一个 public 类
- 一个源文件可以有多个非 public 类
- 源文件的名称应该和 public 类的类名保持一致。例如:源文件中 public 类的类名是 Employee,那么源文件应该命名为Employee.java。
- 如果一个类定义在某个包中,那么 package 语句应该在源文件的首行。
- 如果源文件包含 import 语句,那么应该放在 package 语句和类定义之间。如果没有 package 语句,那么 import 语句应该在源文件中最前面。
- import 语句和 package 语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明。
(5)、java包
包主要用来对类和接口进行分类。当开发 Java 程序时,可能编写成百上千的类,因此很有必要对类和接口进行分类。
(6)、import语句
在 Java 中,如果给出一个完整的限定名,包括包名、类名,那么 Java 编译器就可以很容易地定位到源代码或者类。import 语句就是用来提供一个合理的路径,使得编译器可以找到某个类。
如下
4.java循环结构与条件语句
(1)、循环结构
- while 循环
- do…while 循环
- for 循环
- 增强型for循环
//while循环,如果不满足条件,则不能进入循环。 //只要布尔表达式为 true,循环就会一直执行下去。 while( 布尔表达式 ){ //循环内容 } //do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。 //当不满足条件时,do…while 循环至少会执行一次。 do{ //代码语句 }while(布尔表达式); //for循环执行的次数是在执行前就确定的。 for(初始化; 布尔表达式; 更新){ //代码语句 } //增强型 for 循环,主要用于数组或集合,特点是效率必普通for循环快 for(声明语句 : 表达式){ //代码句子 }
(2)、条件语句
- if…else 语句
- switch case 语句
1 //if...else语句可以省略else,直接使用if语句。也可以使用if...else语句。也可以使if...else if...else 语句 2 if(布尔表达式){ 3 //如果布尔表达式为true将执行的语句 4 }else { 5 //如果布尔表达式为false将执行的语句 6 } 7 8 //switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。 9 //如果 case 语句块中没有 break 语句时,匹配成功后,从当前 case 开始,后续所有 case 的值都会输出。 10 switch(expression){ 11 case value : 12 //语句 13 break; //可选 14 case value : 15 //语句 16 break; //可选 17 //你可以有任意数量的case语句 18 default : //可选 19 //语句 20 }
switch case 语句有如下规则:
-
switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。
-
switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。
-
case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
-
当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。
-
当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。
-
switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。