Java基础语法

82 阅读6分钟
对象:对象是类的一个实列有状态和行为
类:类是一个模板(他描述对象的行为和状态)
方法:方法就是行为,
一个类可以有很多方法
。逻辑运算、数据修改以及所有动作都是在方法中完成的
实列变量:每个对象都有独特的实例变量,对象的状态由这些石烈变量的值决定
实例:

public class HelloWorld {

 /* 第一个Java程序 * 它将打印字符串 

Hello World 

*/

 public static void main(String[] args) {

 System.out.println("Hello World");

 // 打印 Hello World 

} }

基本语法:
**大小写敏感:**Java是大小写敏感的这就意味这Hello和hello是不同的
类名:对于所有的类来说,类名的首字母应该大写
**方法名**:所有的方法名都应该以小写字母开头
**源文件名**

(.java)

:源文件名必须和类名相同。当文件保存的时候,你应该使用类名作为文件名保存

(切记Java是大小写敏感),文件名的后缀为.java。(如果文件名和类名不相同则会导致编译错误)

**主方法入口:**所有的Java程序由**public static void main(String[] args)** 方法开始执行。

Java标识符

Java所有的组成部分都需要名字。

类名、变量名以及方法名都被称为标识符。
所有的标识符都应该以字母(

A-Z 或者 a-z),美元符($)、或者下划线(_)开始

首字符之后可以是字母(

A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合

关键字不能用作标识符
标识符是大小写敏感的
合法标识符举例:

age、$salary、_value、__1_value

非法标识符举例:

123abc、-salary

**  Java修饰符**

Java可以使用修饰符来修饰类中方法和属性。主要有两类修饰符:

1.

访问控制修饰符:

default ,public , protected , private

default (即缺省,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。

private : 在同一类内可见。使用对象:变量、方法。

**注意:不能修饰类(外部类)**

public : 对所有类可见。使用对象:类、接口、变量、方法

protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。

**注意:不能修饰类(外部类)**

2.

非访问控制修饰符

: final, abstract, static, synchronized

final 变量

final 变量能被显式地初始化并且只能初始化一次。被声明为 final 的对象的引用不能指向不同的对象。但是 final 对象里的数据可以被改变。也就是说 final 对象的引用不能改变,但是里面的值可以改变。

final 修饰符通常和 static 修饰符一起使用来创建类常量

Public class Test{

Final int value =10;

//下面是声明常量的实列

Public static final int BOXWIDTH=6;

Static final String TITLE=“Manager”;

Public void changeValue(){

Value =12;

}

}

// error: cannot assign a value to final variable value

// value = 12; //将输出一个错误

// ^

// 1 error

final 方法

类中的

final 方法可以被子类继承,但是不能被子类修改。

声明

final 方法的主要目的是防止该方法的内容被修改。

如下所示,使用

final 修饰符声明方法。

public class Test {

public final void textMethod(){

//方法体

}}

final 类

final 类不能被继承,没有类能够继承 final 类的任何特性。

public final class Test{

//类体

}

abstract 修饰符

**抽象类**
抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充。
一个类不能同时被

abstract 和 final 修饰。如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则将出现编译错误。

抽象类可以包含抽象方法和非抽象方法。

abstract class Test { //抽象类

private double height;

private String name;

private Date birth;

public abstract void hear(); //抽象方法

public abstract void eat(); //抽象方法

}

**抽象方法**
抽象方法是一种没有任何实现的方法,该方法的的具体实现由子类提供。
任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类。
如果一个类包含若干个抽象方法,那么该类必须声明为抽象类。抽象类可以不包含抽象方法。
抽象方法的声明以分号结尾,例如:

public abstract sample();

Public abstract class SuperClass{

Abstract void testMethod(); //抽象方法

}

Class SubClass extends SuperClass{

//实现抽象方法

Void testMethod(){

//............

}

}

抽象方法不能被声明程

final和static

//final 不能同时和abstract使用,因为abstract是需要被子类继承覆盖的否则毫无意义

/而abstract需要被继承实现两者相互矛盾

Abstract final void testMethod();

//static 和abstract也是不能连用的因为static是类级别的不能被子类覆盖

//而abstract需要被继承实现,两者相互矛盾。

Abstract final void testMethod();

synchronized 修饰符

synchronized 关键字声明的方法同一时间只能被一个线程访问。synchronized 修饰符可以应用于四个访问修饰符。

public synchronized void buyTicket(){

//.......

}

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 公共的 default 默认

**类、方法和变量修饰符**

abstract 声明抽象 slass 类 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 空