Java 语法
首先要知道 java 废除了指针。Java 是严格区分大小写的。
例子
package myclass; publicclass First { privatestatic String s1="让我看看,"; publicstaticvoid main(String[] args) { String s2="例子."; System.out.println(s1+s2); } }
定义变量
通常将类的属性称之为类的全局变量,将方法中的属性称之为局部变量。 全局变量声明在类体当中,局部变量声明在方法体当中,全局变量和局 部变量都有各自的应用范围。S1 是全局变量 s2 局部变量
定义主方法
main()是类体中的主方法。 Public,static,void 分别是 main 方法的权限修饰 符,静态修饰符,返回值类型声明。String arg[]是一个字符串类型的数 组,它是 main 的参数(所以不能把 arg 写成别的)main 是入口只能有 一个入口。
定义常量
Java 中使用 final 来声明常量,且只能初始化一次。
自动类型转换
Byte→short→int→long→float→double Char→ 不同类型的数据在运算过程中首先会自动转换成同一类型,在进行运算。 数据类型可以根据占用存储空间大小分为高低级别,占用空间越大级别 越高。自动类型转换遵循低级到高级转换的规则。 自动转换会发生在以下几种情况: 1. 变量赋值 当为变量赋值的数据类型和变量不一样时并且赋值的数据类型低于 变量类型的级别时。 2. 方法(函数)调用 把一个数值传给方法的参数, 并且这个数值的数据类型低于方法的参 数变量的数据类型 3. 一元运算 在一元运算中(除了++和--) ,如果低于 int 自动转换成 int。 4. 二元运算符 在二元运算中, 所有的低级数据类型都会转换为运算中级别最高的数 据类型。
强制类型转换
(类型) (表达式) Boolean 布尔值不能被强制类型转换为其他数据类型
Java 注意的问题
修饰符时,或者称使用类方法时需要注意: 使用 static 修饰符时,或者称使用类方法时需要注意:
1 类方法的方法体中不能直接引用对象变量 未用 类方法的方法体中不能直接引用对象变量(未用 未用static修饰的 修饰的) 修饰的 2 类方法中不能直接调用对象方法 3 类方法中不能使用super、this关键字 、 关键字 类方法中不能使用 package test; class A{ intx=1; } publicclass Test { staticinty=2; publicstaticvoid main(String[] args) { A a=new A(); System.out.println(a.x); System.out.println(y); }
这是对的
package test; class A{ intx=1; } publicclass Test { inty=2; publicstaticvoid main(String[] args) { A a=new A(); System.out.println(a.x); System.out.println(y);
}
这是错的
java.lang.Error: 无法解析的编译
问题: 不能对非静态字段 y 进行静态引用 at test.Test.main(Test.java:11) Exception in thread "main"
原因是:类方法的方法体中不能直接引用对象变量 类方法的方法体中不能直接引用对
象 对象变量 解决方法: 按对的打 解决方法:1.按对的打
2.把 int y=2;挪到 把 挪到 publicstaticvoid main(String[] args)中
package a; class A{ staticintx=1; } publicclass Test {
publicstaticvoid main(String[] args) { A a1=new A(); A a2=new A(); a1.x=5; System.out.println(a1.x+" "+a2.x); } } 在 int 前加了 static 后, 类底下都是一样的了, A 结果都是 5, A.x=a1.x=a2.x=5 即 package a; class A{ intx=1; } publicclass Test {
publicstaticvoid main(String[] args) { A a1=new A(); A a2=new A(); a1.x=5; System.out.println(a1.x+" "+a2.x); } } 不加 static 时,a1.x=5,a2.x=1