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();
        }
    }
    
    
}
原文地址:https://www.cnblogs.com/Narule/p/10286514.html