关键字:
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 是不是这个实力