重要关键字解析

在java语言中,有许多关键字,他们按照不同的类别可以分为不同的关键字。 
           
访问权限:public protected private
基本数据类型:int long byte char double float boolean short
跟类相关的:class import extends implements interface package
循环判断:if else switch  while do case for
异常:try catch throw throws
其他:final static this super
在这里我们若要准确的理解各种关键字,就应该按照相应的类型下的关键字的区别和联系去记忆,这样才能更有效果。这里的话重点讲几个比较重要而且难以理解的关键字。
访问权限:
public:同一个工程下的任何类都能被访问和继承
protected:同一个包下的任何类可以被访问和被不同包下其他类继承和子类访问
默认的:同一个包下的任何类可以被访问
private:只能在自己类中使用 分别可以修饰类、方法、属性:
类:public和默认修饰都可以修饰类
            比如public class Student{}
              class Student{} 
但是类的内部类可以定义为以上四种访问权限
方法:public protected 默认  private
属性:public protected 默认  private
方法和属性都可以用四个关键字来修饰,但是有的不是常用的,比较常用的是public private (建议是定义类的属性的时候用private,避免在程序中出现debug时难以找到问题的所在,因为属性可能会用错)。


final:
final--最终的
修饰范围:方法、属性、类、参数
当修饰类的时候:不能被继承,断子绝孙(根据final的字面意思“最终的”来理解,就是没有后来的了)。
当修饰函数的时候:子类不能重写,即该方法就只能存在父类中,子类需要调用的话,只能完完全全地实现父类中的方法。
当修饰属性时候:此属性是常量,不能重新赋值(相当于只能定义一次)
当修饰参数时候:参数变量的地址不能重新修改,如果是值传递,值也不能修改

try catch:
这是在程序中用来捕捉异常用的。
一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。用try来指定一块预防所有“异常”的程序。紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的“异常”的类型。
     示例: 捕捉IO异常:

public void print(){ 
    //创建输入流对象 
	try { 
	    InputStream is = new FileInputStream("C:\\Users\\asus\\Desktop"); 
	} catch (FileNotFoundException e) { 
		e.printStackTrace(); 
	}
 
}

 
这是由于为文件输入流中传入了一个地址,所以系统会通过try catch来捕捉异常。

throw  throws:
这是在某种情况下,比如说数组越界,调用函数时传入的实参超出了一定不懂范围,则通过抛出异常使程序能运行。
throw语句用来明确地抛出一个“异常”。 
示例:
        throw new ArrayIndexOutOfBoundsException("超出范围");
   throws用来标明一个成员函数可能抛出的各种“异常”。
   经常会用到的是第二个。

static:
static--静态的
修饰范围:方法、属性、静态代码块
如果通过static修饰方法属性,那说明这个类的所有对象共有这同一个方法或者属性
static的属性和方法存储在静态空间中,只要当前类通过编译,则这个静态属性或者方法就已经初始化存在于静态空间中但是非静态属性和方法,必须通过创建对象过程才会初始化到堆内存中。
     示例: 

public class Student {
	public static void main(String[] args) {
		//在未创建对象时就可以调用静态方法
		Student.study1();
		//调用非静态方法时必须先创建对象
		Student st = new Student();
		st.study2();
		st.study1();
	}
	//定义静态方法
	public static void study1(){
		System.out.println("静态方法:大学生在图书馆上自习");
	}
	//定义非静态方法
	public void study2(){
		System.out.println("非静态方法:大学生在教室上课");
	}
}

 调用之后打印的结果是:

 
 静态块:格式:static{} 
 静态块中的内容在当前类编译时候执行
注意:静态方法中只能用静态属性,不能用非静态属性

this\super:
this:  当前类的对象
        1)调用当前类的其他构造函数   
        2)指当前对象,可以通过this调用当前对象的属性和方法
super: 当前类的父类的对象
        1)调用父类的构造函数   
        2)指父类对象,调用父类对象的属性和方法 
注意:子类的构造函数必然会调用父类构造函数,默认情况下会调用父类无参构造方法 
   示例: 
         

public class Student { 
	public void study() { 
		System.out.println("执行了学生的学习方法"); 
	} 
}
      	// 另外有个大学生类来继承学生类 
public class UnStudent extends Student{ 
	public static void main(String[] args) {
 
	 	new UNStudent().study();
 
	}
        public void study() { 
		super.study(); 
		System.out.println("执行了大学生的学习方法"); 
	    } 
} 

 输出结果为:

 
在这些简单的关键字的运用方面,需要经常复习,经常用用,避免在以后的编程过程中出现不必要的错误。这须就是语言的巧妙之处吧,常用常熟,融会贯通。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值