一、第一个JAVA代码
public class Main{
public static void main(String[] args){
System.out.println("Hello World");
}
}
二、基本语法
JAVA标识符
类似于C语言中标识符规则
JAVA修饰符
JAVA变量
- 局部变量
- 类变量(静态变量)
- 成员变量(非静态变量)
JAVA数组
数组是存储在堆上的对象,可以保存多个同类型变量
JAVA枚举
class FreshJuice {
enum FreshJuiceSize{ SMALL, MEDIUM , LARGE }
FreshJuiceSize size;
}
public class FreshJuiceTest {
public static void main(String []args){
FreshJuice juice = new FreshJuice();
juice.size = FreshJuice.FreshJuiceSize.MEDIUM ;
}
}
JAVA关键字
类别 关键字 说明 | ||
---|---|---|
访问控制 | private | 私有的 |
protected | 受保护的 | |
public | 公共的 | |
类、方法和变量修饰符 | abstract | 声明抽象 |
class | 类 | |
extends | 扩充,继承 | |
final | 最终值,不可改变的 | |
implements | 实现(接口) | |
interface | 接口 | |
native | 本地,原生方法(非java实现) | |
new | 新,创建 | |
static | 静态 | |
strictfp | 严格,精准 | |
synchronized | 线程,同步 | |
transient | 短暂 | |
volatile | 易失 | |
程序控制语句 | break | 跳出循环 |
case | 定义一个值以供switch选择 | |
continue | 继续 | |
default | 默认 | |
do | 运行 | |
else | 否则 | |
for | 循环 | |
if | 如果 | |
instanceof | 实例 | |
return | 返回 | |
switch | 根据值选择执行 | |
while | 循环 | |
错误处理 | assert | 断言表达式是否为真 |
catch | 捕捉异常 | |
finally | 有没有异常都执行 | |
throw | 抛出一个异常对象 | |
throws | 声明一个异常对象 | |
try | 捕获异常 | |
包相关 | import | 引入 |
package | 包 | |
基本类型 | boolean | 布尔型 |
byte | 字节型 | |
char | 字符型 | |
double | 双精度浮点 | |
float | 单精度浮点 | |
int | 整型 | |
long | 长整形 | |
short | 短整形 | |
变量引用 | super | 父类,超类 |
this | 本类 | |
void | 无返回值 | |
保留关键字 | goto | 是关键字,但不能使用 |
const | 是关键字,但不能 | |
null | 空 |
继承
类似C++
接口
在Java中,接口理解为对象间相互通信的协议。接口在继承中扮演着很重要的角色。接口只定义派生要用到的方法,但是方法的具体实现完全取决于派生类。
三、JAVA对象和类
- 多态
- 继承
- 封装
- 抽象
- 类
- 对象
- 实例
- 方法
- 重载
类可以看成创建Java对象的模板
public class Dog{
String breed;
int age;
String color;
void barking(){}
void hungry(){}
void sleeping(){}
}
一个类包含以下类型变量
- 局部变量:在方法、析造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
- 成员变量:成员变量是定义在类中的,方法体之外的变量。这种变量实在创建对象的时候实例化。成员变量中可以被类中方法、构造方法和特定类的语句块访问。
- 类变量:类变量也声明在类中,方法体之外,但必须声明为static类型。
构造方法
每个类都有构造方法,如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。
public class Pubby{
public Pubby(){
}
public Puppy(String name){
//这个构造器仅有一个参数:name
}
}
创建对象
对象是根据类创建的。在Java中,使用关键字new来创建一个新的对象。创建对象需要以下三步:
- 声明:声明一个对象,包括对象名称和对象类型。
- 实例化:使用关键字new来创建一个对象。
- 初始化:使用new创建对象时,会调用构造方法初始化对象。
public class Pubby{
public Pubby(String name){
//这个构造器仅有一个参数:name
System.out.println("小狗的名字是:"+name);
}
public static void main(String []args){
//下面的语句将创建一个Pubby对象
Pubby myPuppy = new Pubby("tommy");
}
}
访问实例变量和方法
通过已创建的对象来访问成员变量和成员方法
/* 实例化对象 */
ObjectReference = new Constructor();
/* 访问类中的变量 */
ObjectReference.variableName;
/* 访问类中的方法 */
ObjectReference.methodName();
实例
public class Pubby{
int puppyAge;
public Pubby(String name){
//这个构造器仅有一个参数:name
System.out.println("小狗的名字是:"+name);
}
public void setAge(int age){
puppyAge = age;
}
public int getAge(){
System.out.println("小狗的年龄:"+puppyAge);
return puppyAge;
}
public static void main(String []args){
//下面的语句将创建一个Pubby对象
Pubby myPuppy = new Pubby("tommy");
myPuppy.setAge(2);
myPuppy.getAge();
System.out.println("变量值:"+myPuppy.puppyAge);
}
}
小狗的名字是 : tommy 小狗的年龄为 : 2 变量值 : 2
四、源文件声明规则
- 一个源文件中只能有一个public类
- 一个源文件可以有多个非public类
- 源文件的名称应该和public类的类名保持一致,例如:源文件中public类的类名是Employee,那么源文件应该命名为Employee.java
- 如果一个类定义在某个包中,那么package语句应该在源文件的首行。
- 如果源文件包含import语句,那么应该放在package语句和类定义之间。如果没有package语句,那么import语句应该在源文件中最前面。
- import语句和package语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明。
Import语句
用来提供一个合理的路径,让编译器找到某个类,例如下面的命令行将会命令编译器载入java_installation/java/io路径下的所有类
import java.io.*;