this关键字
this的作用: – this表示的是当前对象本身,
– 更准确地说this代表当前对象的一个引用。
普通方法中使用this。
区分类成员属性和方法的形参.
调用当前对象的其他方法(可以省略)
位置:任意
构造方法中使用this。
使用this来调用其它构造方法
位置:必须是第一条语句
this不能用于static方法
下面我们简单的写个代码来理解一下即可
ublic class Dog {
private String name;
private int age;
private int weight;
public Dog(){
}
public Dog(String name,int age,int weight){
this.name=name;//如果不用this,那就是name=name这样的话我们就分不清楚属性和方法了
//但是我们又要用name,所以就要用到this,代表当前对象的一个引用(下同)
this.age=age;
this.weight=weight;
}
}
static 关键字
在类中,用static声明的成员变量为静态成员变量 ,或者叫做: 类属性,类变量
它为该类的公用变量,属于类,被该类的所有实例共享,在类被载入时被显式初始化, 对于该类的所有对象来说,static成员变量只有一份。被该类的所有对象共享!!
可以使用”对象.类属性”来调用。不过,一般都是用“类名.类属性”
static变量置于方法区中!
用static声明的方法为静态方法
不用对象直接用(类名.方法)就可以
在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员。
静态方法不能以任何方式引用this和super关键字
静态属性的访问形式
(1)对象名.属性
(2)类名.属性
静态方法
– 访问修饰符 static 返回值类型 方法名(){}
静态变量不能定义在静态方法中
静态方法可以在非静态方法中进行调用
静态方法中不能直接调用非静态方法,换句话说可以间接调用非静态方法
静态方法中不允许出现this调用
一般工具类中的方法定义为static
public class PenguinTest {
public static final String SEX_MALE="Q仔";//静态常量
public static final String SEX_FEMALE="Q妹";//静态常量
static String sex ;//静态变量
public PenguinTest(){//一个空构造器
}
public PenguinTest(String sex){
this.sex=sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getSex(){
return sex;
}
public static void main(String[] args) {
PenguinTest pt =new PenguinTest();
PenguinTest.sex="雄";//类名.属性直接调用并赋值
System.out.println("name:"+PenguinTest.SEX_MALE+"\t"+"性别:"+PenguinTest.sex);
PenguinTest.sex="雌";//类名.属性直接调用并赋值
System.out.println("name:"+PenguinTest.SEX_FEMALE+"\t"+"性别:"+PenguinTest.sex);
}
}
代码块
概念:使用”{}”括起来的一段代码 ▪
分类:根据位置可分类
普通代码块直接在方法或语句中定义的代码块
构造代码块直接写在类中的代码块
静态代码块使用static声明的代码块
静态初始化块
静态初始化块中不能访问非static成员。
public class TestStaticBlock {
static {
System.out.println("此处,可执行类的初始化工作!");
}
public static void main(String[] args) {
System.out.println("main方法中的第一句");
}
}