package
指定包路径,描述java文件所在位置(在哪个包)
class
描述java的类信息,说明此文件是一个java类
interface
描述java的接口信息,说明此文件是一个接口
public
公共的,一般说明属性共有,公共可以使用
private
私有的,一般说明属性私有,只能被自己使用,不对外提供,不允许其他对象使用
static
静态的,可以直接调用
final
最终,一般是对类,属性等的描述,表示不可在修改,初始化之后即确定
this
表示本身,即执行者自己,比如 a对象调用stop方法,stop方法里面有this字段,这个this表示的就是a对象自己。
implements
实现,一个类实现一个接口,使用此关键字
extends
继承,一个类继承另一个类,将继承所有公共方法和属性
volatile
变量修饰符,易改变的,一般在多线程环境下,保证数据的实时性。 涉及系统内存数据与寄存器数据保持同步知识。
transient
针对对象序列化的修饰符,如果类的某个属性用transient修饰,表示该类的对象的这个属性在序列化的时候不用序列化操作
一切都是对象
java中任何事物可看做对象,创建对象的一般就是空参构造、有参构造创建对象
classUser{//类的属性,字段
privateString name;//空参构造 java是默认空参构造,可以不用写出来.
publicUser(){};//有参构造 如果写了有参构造,会覆盖空参构造//若要通过 new User() 方式创建对象,则必须在代码中把空参构造方法也写出来
publicUser(String name){this.name =name;
}
}
空参创建对象: User user1 = new User(); user1 在java中就是一个实例对象
有参创建对象: User user2 = new User("小明"); user2在java中就是一个实例对象,并且name的值为"小明"
例
SimpleInfo.java
packagetest.interfaces;//定义一个获取基本信息的接口 实现这个接口的类必须对outInfo() 方法有具体实现
public interfaceSimpleInfo {//获取信息方法
String outInfo();
}
TestClass.java 继承Thread类重写run方法,并实现SimpleInfo接口实现outInfo()方法
packagetest;//package 指定文件所在位置在test包下
importtest.interfaces.SimpleInfo;public class TestClass extends Thread implementsSimpleInfo{public String name; //公共属性,可以被子类集成使用
private Integer age; //私有属性,不能被子类使用
public static final String classInfo = "TestClassInfo"; //final 修饰属性,不可被修改
public static ThreadLocal scyThread = new ThreadLocal<>();
@Overridepublic String outInfo() { //实现 SimpleInfo 接口 所以必须实现Simple 接口的outInfo方法
return Thread.currentThread().getName()+" Hello -> " +scyThread.get();
}//private 私有 说明 setAge是私有方法,只有对象自己才能调用
private voidsetAge(Integer age) {this.age =age;
}//空参构造 即 new TestClass();实现创建对象的构造方法
publicTestClass() {
}//有参构造
publicTestClass(String name) {this.name =name;
}//有参构造
publicTestClass(String name,Integer age) {this.name =name;this.age =age;
}//继承 Thread 类 重写 run() 方法
@Overridepublic voidrun () {
setName(name);
scyThread.set(age.longValue());
System.out.println(outInfo());//打印调用outInfo()方法的返回值
}//公共静态方法 谁都可以调用
public static voidsayHello() {
System.out.println("Hello World");
}//main 方法,程序启动的开始
public static voidmain(String[] args) {//静态方法
TestClass.sayHello();for(int i = 0; i < 5; i++) {//有参构造创建TestClass对象//TestClass继承Thread,拥有Thread线程属性,所以创建的对象是线程对象
TestClass thread = new TestClass("CreatThread"+i,i);//调用Thread 的start() 方法启动线程
thread.start();
}
}
}