Java之关键字Java,
Java之关键字Java,
Java的关键字
首先我们要知道关键字的含义:所谓关键字就是指在Java的语法中,那些被赋予了指定意义的单词。
那么在Java编程语言中有一下一些比较常用的关键字:
跟类相关的关键字:package,extends,interface,implements,abstract,class
跟属性相关的关键字:static,fianal
跟方法相关的关键字:void
跟访问权限相关的关键字:public,private,protected
跟异常相关的关键字:try,catch,throw,throws,finally
八大基本数据类型:int,long,short,double,float,boolean,byte,char
循环判断:if,else,for,switch,case,while,break,continue,return
其他:this,super,new
现在我们知道了那么多的关键字,那么这些关键字在Java中的含义及其用法是什么呢?下面就以下一些例子来说明其中一部分的关键字的含义及其用法。
1)访问权限得关键字:public,private,protected
public(公有的):可以用来修饰属性或者方法,用public修饰的属性或者方法都可以被当前整个工程下的任何类的当前对象调用。
private(私有的):只有当前类的内部可以调用。
例如:同一个工程中,有一个包下有学生类和测试类,在另一个包下有大学生类继承学生类。
package com.kz.demo;
public class Student {
public String name;
private int age;
protected String sex;
}
package com.kz.demo;
public class Test {
public static void main(String[] args) {
Student std = new Student();
std.name = "ckz";
std.age = 18;
std.sex = "man";
}
}
由此我们可以看到一个包中,std无法访问到Student中的private的age属性,编译报错。protected(受保护的):当前工程下的同一个包内可以通过当前对象访问公有的属性或者方法,不同包可以通过子类来继承
package com.kz.chonghui;
import com.kz.demo.Student;
public class Unstudent extends Student{
public static void main(String[] args) {
Unstudent ut = new Unstudent();
ut.sex = "";
}
}
在这里可以看到在另外一个包中的Unstudent的对象可以访问protected的sex属性默认的:当前工程下的同一个包内的当前类的对象可以访问的公有属性或者方法
2)this和super
this:指当前类的对象,可以用来调用当前类的属性,方法,构造方法
super:指父类的对象,可以用来调用父类的属性,方法,构造方法
其中有两点要注意的地方:1.当调用子类的构造方法时,一定会用super关键字来调用父类的构造方法(有时省略不 写)。
2.当使用super调用构造方法的时候,super一定要写在第一行
举例说明:A类为父类,B类是A的子类
package com.kz.demo;
public class A {
public int n;
//构造方法
public A(){
System.out.println("a");
}
}
package com.kz.demo;
public class B extends A{
//B 的构造方法
public B(){
//调用父类的构造方法
super();
//访问父类的属性
super.n = 10;
System.out.println("b");
}
}
package com.kz.demo;
public class Test {
public static void main(String[] args) {
B kz = new B();
}
}
运行程序的结果如下:3)final(最终的):final可以用来修饰类、属性、方法、参数,局部变量。
用来修饰类:表示当前类不能被继承
用来修饰属性:表示此属性只能被初始化(赋值)一次
用来修饰方法:表示此方法不能被重写
用来修饰参数和局部变量:表示此局部变量在此使用范围内不可以再被改变
4)static(静态的):此为比较难懂的重点。static可以修饰属性、方法、静态语句块
静态的属性和方法:在加载当前类的时候就会加载(编译的时候)到静态空间储存,而且只会加载一次。
需要注意的地方是:在静态方法里面不能调用非静态的属性。
下面来举例:
package com.kz.demo;
public class Student {
//定义静态数据块
static{
System.out.println(1);
}
//默认数据块
{
System.out.println(2);
}
//构造方法
public Student(){
System.out.println(3);
}
//静态方法
public static void study(){
System.out.println(4);
}
//普通方法
public void play(){
System.out.println(5);
}
}
package com.kz.demo;
public class Test {
public static void main(String[] args) {
Student stdA = new Student();
Student stdB = new Student();
stdA.play();
Student.study();
}
}
那么我们运行一下这个程序得到了如下的结果:
结果说明了静态方法先与其他方法先运行,因为静态方法在编译程序的时候就添加到静态存储中去了,并且只运行一次。而默认数据块则会每次自动执行。
5)break,continue,return
break:表示跳出当层循环。
continue:表示跳出档次循环,并且继续执行下一个循环。
return:表示结束当前方法。
相关文章
- 暂无相关文章
用户点评