java基础学习——关键词

本文详细解析了Java中this和super关键字的使用方法及其应用场景,包括属性、普通方法及构造方法中的应用,并介绍了static、访问权限、final等概念。
关键字:
1.哪些关键字
this、super、static、void、访问权限、final、
break   跳出,中断    continue  
instanceof 


2.this  属性、方法、构造方法
属性:同名的时候,为了区分全局的还是局部
普通方法:基本没用

构造方法:this:一层一层往下调用,最后是最全的方法去实现(必须放在第一行)

2.1属性:

package 关键字;

public class ThisTest {
	private String name; //定义一个成员变量name

	public void setName(String name) {
		//设置姓名,定义一个形参name
		name=name; 
	}
	public String getName( ) {
		//获得姓名 return "姓名:"+name;
		return name;
	}
	public static void main(String[] args) {
		ThisTest thisTest=new ThisTest();
		thisTest.setName("张三");;
		System.out.println("姓名:"+thisTest.getName());
	}
}

运行结果:姓名:null

由运行结果可以看出,通过name=name并没有正确的将内容赋给属性,为什么呢?因为此时操作的name实际上是方法中的,跟类中的属性完全不沾边。
另外,这个程序代码中,有一个成员变量name,同时在方法中有个形式参数,参数名也是name。然后在方法中将形式参数name的值传递给成员变量name。虽然我们可以看明白这个代码的含义,但是作 为Java编译器它是怎么判断使用哪个变量的呢?到底是将形式参数name的值传递给成员变量name,还是反过来讲成员变量name的值传递给形式参数name呢?此时this这个关键字就起到作用了,这种情况下使用this这个关键字代表的就是类中的成员变量,又叫做类的属性。所以此时,为了明确的表示出哪一个是类中的属性,就要加上“this.属性名称”的操作.


将ThisTest类的代码改进如下:

package 关键字;

public class ThisTest {
	private String name; //定义一个成员变量name

	public void setName(String name) {
		//设置姓名,定义一个形参name
		this.name=name; 
	}
	public String getName( ) {
		//获得姓名 return "姓名:"+name;
		return name;
	}
	public static void main(String[] args) {
		ThisTest thisTest=new ThisTest();
		thisTest.setName("张三");;
		System.out.println("姓名:"+thisTest.getName());
	}
}
结果:姓名:张三
这时,setName中的name代表的就是类中的成员变量,而赋值号右边的name则是方法的形式参数,代码name就是将形式参数的值传递给成员变量。

小结:在方法体内定义的变量称为局部变量,在类的内部方法体的外部定义的变量称为成员变量。如果成员变量和方法中的局部变量的名字相同时,那么在方法中成员变量将会被屏蔽。如果这个时候还要使用成员变量,就需要使用关键字this。使用this引用成员变量的方法格式:this.成员变量名。

2.2普通方法

package 关键字;

public class ThisTest1 {
	private String name;

	public void setName(String name)

	{ 
		this.name=name;
		this.print();//调用本类中的print方法

	 }

	public String getName( ) { return name; }

	public void print( ) {
	System.out.print("姓名:"); 
	}
	public static void main(String[] args) {
		ThisTest1 thisTest1= new ThisTest1(); 
		thisTest1.setName("张三");
		System.out.println(thisTest1.getName());
	}
}
结果:姓名:张三
2.3构造方法:

package 关键字;

public class Name {
	public Name(){
		this("张三");
	}
	public Name(String name){
		this(name,18);
	}
	public Name(String name,int age){
		System.out.println("姓名:"+name+",年龄:"+age);
	}
	public static void main(String[] args) {
		Name name=new Name();
	}
}
运行结果:姓名:张三,年龄:18
注意:在使用this关键字调用其他构造方法的时候,this()调用构造方法只能放在构造方法的首行,为的是能 够为类中的属性初始化;而且至少有一个构造方法是不用this调用,否则程序会出现错误。
3.super
属性:子父类都有的时候,要用super.name 去区分 
普通方法:super.saySelf();调用父类的方法
构造方法:super("xx")(必须放在第一行)

4.static 静态
4.1.怎么使用?
类的方法、类的属性:都是通过类名.  访问的
类的方法去放问对象的属性??不可以
类方法访问类的属性?? 可以
4.2.什么时候使用??
确保程序里只有一个,并且确保线程安全(不能出现同时去修改的情况!!)

5.访问权限:类属性和对象属性 、方法对象方法
1) private 私有的
private 关键字是访问控制修饰符,可以应用于类、方法或字段(在类中声明的变量)。 只能在声明 private(内部)类、方法或字段的类中引用这些类、方法或字段。在类的外部或者对于子类而言,它们是不可见的。 所有类成员的默认访问范围都是 package 访问,也就是说,除非存在特定的访问控制修饰符,否则,可以从同一个包中的任何类访问类成员。

2) protected 受保护的
protected 关键字是可以应用于类、方法或字段(在类中声明的变量)的访问控制修饰符。可以在声明 protected 类、方法或字段的类、同一个包中的其他任何类以及任何子类(无论子类是在哪个包中声明的)中引用这些类、方法或字段。所有类成员的默认访问范围都是 package 访问,也就是说,除非存在特定的访问控制修饰符,否则,可以从同一个包中的任何类访问类成员。
8
3) public 公共的
public 关键字是可以应用于类、方法或字段(在类中声明的变量)的访问控制修饰符。 可能只会在其他任何类或包中引用 public 类、方法或字段。所有类成员的默认访问范围都是 package 访问,也就是说,除非存在特定的访问控制修饰符,否则,可以从同一个包中的任何类访问类成员。
 
6.final
配置信息 和static一起用

7.instanceof 是不是这个实力
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值