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