1.基础基本语法规则
这是Java的第一个程序
public class Hello{
public static void main(String[] args){
System.out.println("helloWorld!");
}
}
Java 源代码中的所有标点符号使用英文输入法状态输入;
Java 源代码是区分大小写;
类名默认都使用大写;
一个.java 源文件中可以声明多个类,但是只能有一个 public 修饰的类;
当声明的类使用 public 关键字修饰时,源文件名必须和类名保持一致;
类中可以继续声明类,称为内部类
变量的语法
声明语法:
数据类型 变量名 ;
byte、int、long、和 short 都可以用十进制、16 进制以及 8 进制的方式来表示。
当使用常量的时候,前缀 0 表示 8 进制,而前缀 0x 代表 16 进制, 例如:int decimal = 100;
int octal = 0144;
int hexa = 0x64;
标识符:
语法规则:
标识符是用于类名、变量名、方法名、对象名、数组名等的命名;
可以使用英文、数字、下划线_、$符号;
不能以数字开头;
不能使用 Java 关键字或保留字;
区分大小写;
在Java中的注解有三种1.// 2. /* */ 3./** /第三种是文档注解也被称作是说明注释就像我们看一个String的源码,在idea中用ctrl然后双击里面是源码。还有很多注解。其中@author就是相当于是哪个作者写的
运算符:
算术运算符
关系运算符
位运算符
逻辑运算符
赋值运算符
其他运算符
修饰符:
用来定义类、方法或者变量,通常放在语句的最前端。
Java 语言提供了很多修饰符,主要分为以下两类:
访问修饰符
非访问修饰符
访问修饰符:
Java 中,可以使用访问控制符来保护对类、变量、方法和构造方法的访
问。Java 支持 4 种不同的访问权限。
default (即缺省,什么也不写): 在同一包内可见,不使用任何修饰符。
使用对象:类、接口、变量、方法。
private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰
类(外部类)
public : 对所有类可见。使用对象:类、接口、变量、方法
protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。
Java 程序的 main() 方法必须设置成公有的,否则,Java 解释器将不
能运行该类。
protected 可以修饰数据成员,构造方法,方法成员,不能修饰类(内
部类除外)
-
父类中声明为 public 的方法在子类中也必须为 public。
-
父类中声明为 protected 的方法在子类中要么声明为 protected,要么声明为 public,不能声明为 private。
-
父类中声明为 private 的方法,不能够被继承。
非访问修饰符:
为了实现一些其他的功能,Java 也提供了许多非访问修饰符:
static 修饰符,用来修饰类方法和类变量。
final 修饰符:
当 final 修饰类时,当前类不能被继承;
当 final 修饰方法时,该方法不能被重写;
当 final 修饰变量时,变量的值不能被修改,即为常量;
abstract 修饰符,用来创建抽象类和抽象方法。(抽象方法没有方法体)
synchronized 和 volatile 修饰符,主要用于线程的编程。
static 修饰符
-
静态变量:
static 关键字用来声明独立于对象的静态变量,无论一个类实例化多少对象,它的静态变量只有一份拷贝。 静态变量也被称为类变量。局部变量不能被声明为 static 变量。
-
静态方法:
static 关键字用来声明独立于对象的静态方法。静态方法不能使用类的非静态变量。静态方法从参数列表得到数据,然后计算这些数据。
当使用static修饰方法时,该方法被称为静态方法,即类的方法
如果没有使用 static 关键字修饰,该方法为普通方法(实例方法),即对象的方法;
静态方法中,只能直接调用静态方法;
实例方法中,可以直接调用静态方法,也可以直接调用实例方法;
静态方法中如果要调用实例方法,必须先实例化对象,使用对象名调用;
static能修饰什么
* 类————>静态的内部存在,以后再说
* 属性 类的静态变量 。属于类
* 方法 类的静态方法 。属于类
静态代码块:放在什么地方,和构造方法的执行顺序 ,先于构造方法,仅仅执行一次
静态代码块和构造方法比较
* 构造方法是用来初始化对象的属性的
* 静态代码块是用来修饰类的
Final:
final 修饰类表示断子绝孙没有后代 final修饰的成员方法 表示这个方法不能被重写
final类型属性的初始化问题
* 1.声明的同时就初始化
* 2.在构造方法中初始化
* final类型的静态的类变量初始化问题
* 1.声明的同时初始化
* 2.放到静态代码块中,因为静态代码块就是初始化类的
abstract:
抽象类不一定有抽象方法,但有抽象方法的一定是抽象类 抽象类不能被实例化
this 关键字的三种用法
1.执行本类的构造方法,要求必须是第一句
2.this.属性,获取当前的属性
3.this.方法,调用当前对象的方法 (注意,this只能出现在构造方法或者成员方法里面)
this(name);// 调用具有相同形参的构造方法
当你创建对象时,如果没有直接给参就是先调用无参的构造方法在有参的方法中有this();会先调用一下无参的构造方法
super 也有三种用法:
普通的直接引用,super 相当于是指向当前对象的父类,这样就可以用super.xxx 来引用父类的成员。
引用构造函数,调用父类中的某一个构造函数(应该为构造函数中的第一条语句)
子类中的成员变量或方法与父类中的成员变量或方法同名
方法重载:
方法重载通常用于创建完成一组任务相似但参数的类型或参数的个数不同的方法。Java的方法重载,就是在类中可以创建多个方法,它们可以有相同的名字,但必须具有不同的参数,即或者是参数的个数不同,或者是参数的类型不同。调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法
就像这个运行结果就会是15,18
public static int add(int x,int y) {
return x+y;
}
public static void add(int x,int y,int z) {
int w=x+y+z;
System.out.println(w);
}
public static void main(String[] args) {
int z=add(10,5);
System.out.println(z);
add(3,7,8);
}
在String中有静态初始化和动态初始化
String s1="Hello,Java";//静态初始化
String s2=new String ("Hello,Java");//动态初始化