不能import整个包,必须精确到某个类
静态导入
import static [package].[class].*
即可食用该类中的所有静态方法
CLASSPATH与PATH:
CLASSPATH用来寻找相关类的目录,例如一个java文件需要用某个文件夹的类,则该环境变量设置为该类所在目录,若该类在CLASSPATH目录下的子目录,只需import [子目录名].[类名]
注意:在设置CLATHPATH环境变量时需要添加 .;以寻找当前目录下的类,否则将无法运行cmd所在目录下的类
PATH用来寻找java.exe,javac.exe等可执行文件,如D:\Java\jdk
当内部类访问外部对象时为了防止对象被更改造成数据不同步需要将对象加上final。
在类中声明多个同名的方法但该方法形参的个数或类型不同称为方法的重载。
类:
属性:
局部变量,成员变量,类变量(静态变量)
方法:
构造方法,实例方法,类方法(静态方法)
多态体现的两个方面:有方法重载实现的静态多态性(编译时多态)和方法重写实现的动态多态性(运行时多态)。
动态多态可向上转型但不能向下转型。
抽象类:
[权限修饰符] abstract class 类名{
类体
}
1.在抽象类体中,可以包含抽象方法,也可以不包含抽象方法。
2.抽象类不能被实例化,即使抽象类中没有抽象方法。
3.继承抽象类需要重写抽象类中的抽象方法,只要有一个没被重写该类也要定义为抽象类。
接口:
public interface 接口名{
接口体
}
1.如果没有指定接口变量和方法的public访问权限,java将其隐式地声明为public。
2.建议将接口名的第一个字母声明为I以表示接口之意。
3.一个类可实现多个接口,表示是一种多继承的关系。
4.接口中定义的属性成员即使不加static final也默认为常量。
5.若要表示的两类事物在本质上是相同的,则使用继承。否则用接口。
String str1=”java”:存在字符串缓冲池
String str2=new String(“java”):创建了两个String对象,一个是通过双引号在编译期的字符串缓冲池中创建的,另一个是在运行期通过new在堆中创建的。
而变量str1和str2都存在栈中。
java四大特性:多态,封装,抽象,继承
String.sqlit(“\.”) 该方法若要以.作为分割符则一定要加\
nextLine”未执行”被直接跳过?
在nextLine前不能有nextInt,因为在nextInt执行时不会读入‘\n’,所以’\n’还存留在流中,一旦执行nextLine则会直接读入’流中残留的\n’,所以会被跳过,其实是已经执行完了。
当Scanner对象执行close()方法时无法再次执行输入操作
当执行close方法后会关闭