this&static关键字

this关键字

this可调用本类属性、本类方法和当前方法

1、表示本类属性

public class this_static {
public static void main(String[] args) {
Person p1 = new Person("zhansang", 14);
System.out.println(p1.info());
}
}
class Person{
private String name;
private int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
public String info(){
return "name="+name+",age="+age;
}

2、调用本类方法

在一个类中,存在两种方法(普通方法、构造方法),要调用本类的方法需要两种方式。

    调用普通方法:用“this.方法()”调用;

    调用本类构造方法:在一个构造中要调用其他构造使用“this()”调用。

public class this_static {
public static void main(String[] args) {
Emp p1 = new Emp(14,"zhansang",1000,"high");
System.out.println(p1.info());
}
}
class Emp{
private int empno;
private String ename;
private double salary;
private String dept;
public Emp(){
}
public Emp(int empno){
this.empno = empno;
}
public Emp(int empno,String ename){
this(empno);
this.ename = ename;
}
public Emp(int empno,String ename,double salary){
this(empno,ename);
this.salary = salary;
}
public Emp(int empno,String ename,double salary,String dept){
this(empno,ename,salary);
this.dept = dept;
}
public String info(){
return "no="+empno+",name="+ename+",salary="+salary+",dept="+dept;
}

3、表示当前对象

当正在调用类中方法的对象为当前对象时,所有当前的对象都使用this来表示。

public class this_static2 {
public static void main(String[] args) {
Demo demo1 = new Demo();
Demo demo2 = new Demo();
System.out.println(demo1);
demo1.print();
System.out.println(demo2);
demo2.print();
}
}
class Demo{
public void print(){
System.out.println("当前对象:"+this);
}

static关键字

1、使用static定义属性

示例:static String country="beijing";

         System.out.println(Person.country);

若希望将类中的某个属性定义为公共属性(所有对象都可使用的属性),则在该属性前加关键字static。

该属性存储于全局数据区,为所有该类型对象共享。类属性可由类名直接进行调用。

static属性可在没有实例化对象时进行调用。

2、使用static定义方法

    示例:public static void setCountry(String c){...}

static定义的方法不能调用非static的方法或属性;非static定义的方法可调用static的属性或方法。

static定义的属性或方法,可在没有实例化对象的时候使用。非static定义的属性和方法必须实例化对象后才可调用。

一个方法在主类中定义,并且由主方法直接调用时,其前面必须有public static。非static方法必须要由实例化对象调用。

总之,static关键字可以在没有实例化对象时执行类的某些操作;表示出数据共享的概念。

猜你喜欢

转载自blog.csdn.net/wangzheweini/article/details/80192164