JAVA学习(this关键字,static关键字,主函数)

一、this关键字

this 关键字用来表示当前对象本身,通过 this 可以调用本对象的所有方法和属性

例如:

public class Test1 {
private String name = "狗";
private int age;

public void setName(){
String name = "猫";
System.out.println(this.name); //打印当前对象的成员变量name

}

public static void main(String[] args) {
Test1 T = new Test1();
T.setName();
}

}


可见结果是狗,this关键字可以调用本对象的所有方法和属性

4.1 this关键字的作用:

(1)如果存在同名的成员变量与局部变量时,在方法内部默认是访问局部变量的数据,可以通过this关键字指定访问成员变量的数据;

(2)在一个构造函数中可以调用另外一个构造函数初始化对象;但是要注意:

this关键字调用其他的构造函数时,this关键字必须要位于构造函数中的第一个语句;

this关键字在构造函数中不能出现相互调用的情况,因为是一个死循环;

例如:

public class Test1 {

private String name ;

private int age;

Test1(String name){

this.name = name;

}

Test1(String name,int age){

this(name); //this关键字调用其他构造函数

this.age = age;

}

public void setName(){

String name = "猫";

System.out.println(this.name+":"+this.age);

}

public static void main(String[] args) {

Test1 T = new Test1("狗", 5);

T.setName();

}

}

注意:

(1)存在同名的成员变量与局部变量时,在方法的内部访问的是局部变量(Java采取的是“就近原则”的机制访问的);

(2)如果在一个方法中访问了一个变量,该变量只存在成员变量的情况下,那么Java编译器会在该变量的前面添加this关键字;

 

应用举例: 对象T1与对象T2比较年龄

public class Test1 {

private String name ;

private int age;

 

Test1(String name){

this.name = name;

}

Test1(String name,int age){

this(name);

this.age = age;

}

 

public void setName(){

String name = "猫";

System.out.println(this.name+":"+this.age);

 

}

public boolean compare (Test1 T){

if(this.age>=T.age){

return true;

}

else {

return false;

}

}

public static void main(String[] args) {

Test1 T1 = new Test1("狗",5);

Test1 T2 = new Test1("猫",6);

boolean F = T1.compare(T2); //对象T1与传入的参数对象T2比较

System.out.println(F);

}

}

二、static关键字

(1)当类中的某些属性需要被所有对象共享,那么应该将其声明为static属性;

(2)如果一个类中的方法由类名调用,则可以将其声明为static方法。

特点:

1.static是一个修饰符,用于修饰成员

2.static修饰的成员被所有的对象所共享

3.static优于对象存在,因为static的对象随着类的加载就已经存在了

4.static修饰的成员多了一中调用方式,可以直接被类名所调用,类名.静态成员变量

5.static修饰的是共享数据,对象中存储的是特有数据

 

5.1 成员变量和静态变量的区别

1.生命周期不同:

成员变量随着对象的创建而存在,随着对象的回收而释放

静态变量随着类的加载而存在,随着类的消失而消失。

2.调用方式不同:

成员变量只能被对象调用

静态变量可以被对象调用,还可以被类名调用

3.数据存储位置不同

成员变量数据位置存储在堆内存的对象中,所以也叫对象的特有数据

静态变量数据位置存储在方法区(的静态区),所以也叫对象的共享数据

 

5.2静态变量使用的注意事项

1.静态方法只能访问静态成员(指静态变量,静态函数)(非静态既可以访问静态,又可以访问非静态)

2.静态方法中不可以使用this或者super关键字

3.主函数是静态的

 

三、主函数的特殊

1.格式是固定的

2.被JVM所识别和调用

 

public:因为权限必须是最大的

static:不需要对象,直接使用主函数所属类名调用即可

void:主函数不需要具体的的返回值

String[ ] args :这是主函数的参数列表,是一个数组类型的参数,而且元素类型都是字符串类型

 

 

同名的成员变量与局部变量时,在方法内部默认是访问局部变量的数据,可以通过this关键字指定访问成员变量的数据;

posted @ 2021-03-25 20:53  金芒果决斗  阅读(150)  评论(0)    收藏  举报