this关键字
this指当前类对象(指由当前操作类创建的对象)
一定感受出来,this是根据程序运行中,动态指向某个对象的。生活中你在说话的时候,不同时场合不同时间,指的这不是一个东西
public class book {
String bookname;
double price;
public book(){}
public book(String bookname,double price){
this.bookname=bookname;
this.price=price;
}
public void show(){
System.out.println(bookname+"价格是:"+price);
}
}
public class test {
public static void main(String[] args) {
book b1=new book();
b1.bookname="西游记";
b1.price=39;
b1.show();
book b2=new book("三国演义",45);
b2.show();
}
}
注意事项:
-
this可以指代变量 变量名可以区分的情况下,this可以省略io
-
this还可以调用普通方法方法,这种情况大部分都省略
-
this还可以构造调用方法 ,此时this不能省略
调用无参构造方法语法:this()
调用有参构造方法:this(“abc”)
public class boy {
public boy(){
this("asd");//
System.out.println("无参方法运行了");
}
public boy(String name){
System.out.println("有参方法运行了");
}
}
this调用构造方法的注意事项
-
this调用构造方法,必须位于第一句
-
this调用构造方法,必须在构造方法中,普通方法不可以调用
案例判断输出
public class boy {
public boy() {
this("asd");
System.out.println("无参方法运行了");
}
public boy(String name) {
this("zhangsan ", 21);
System.out.println("有参方法运行了" + name);
}
public boy(String name, int age) {
name = "张";
age = 20;
System.out.println("两个参数的方法运行了" + name + age);
}
}
public class test {
public static void main(String[] args) {
boy b=new boy();
}
}
static关键字
static:静态
,被static修饰的
东西
属于类,而不属于某个具体的对象。多个对象之间可以实现数据的共享,从而提高heap区内存的利用率
东西:
static 不能修饰public的类
修饰方法:静态方法,类直接调用
类名直接调用静态方法
Dog.show();
总结static的用法:
-
各个对象共享的属性,可以使用static修饰
-
工具类的方法,一般使用static修饰,方便调用,如Arrays、Math