在java中有很多关键字,主要讲一下一些比较难懂的关键字
1.访问限定符
public:在同一个工程里可以使用
protected:在同一个包下可以使用或者是不同包的子类
默认的:在同一个包下可以被使用
private:只能是在一个类中使用
以上属性按照开放性从大到小
子类继承父类时,访问限定符只能放大或相同不能缩小。
原因:子类继承父类以后,子类重写父类的一些方法,如果创建一个父类的对象,调用方法,因为子类重写了,因此会调用子类的方法,如果子类的访问限定符比父类小,那么对象就不能调用子类中的方法了。会报错。
class A{
protected String name;
int num;
public void study(){
System.out.println("父类的学习!");
}
}
class B extends A{
public static void main(String []args){
B b=new B();
String c=b.name;
int d=b.num; //error!!!,默认的访问限定只能在同一个包下使用 A a=new A();
a.study();
}
private void study(){
System.out.println("子类的学习!");
}
}
this 和super
this: 用法一 指调用的当前对象,哪个对象调用了setName这个方法,this就这个对象
class A{
protected String name;
int num;
public void setName(String name){
this.name=name;
}
}
this:用法二 在构造方法中指构造方法,但是在一个构造方法this必须在第一行,每个构造方法都可以使用this
public class A{
public String name;
public int num;
public A() {
this("默认");
}
public A(String name) {
this.name = name;
}
public A(int num){
this("调用");
this.num=num;
}
}
super的用法和this的第二种用法一样,只是用来调用父类的构造方法,同时也可以调用父类的方法
class B extends A{
public static void main(String []args){
B b=new B();
b.study();
}
private void study(){
super.study(); //调用父类的study方法
}
public B(){
super(); //调用父类的构造方法
}
}
3.final 可以用来定义类,属性,方法, 变量
final定义类的时候表示该类不能被继承,但是该类中的一些属性是可以被修改的
final定义属性和变量的时候表示该属性或者是变量只能被赋值一次,并且不能再被修改
public final class A{
} // 表示不能被继承
public final int num=100; //表示只能赋值一次
public final void trst(){ //表示不能被重写
}
4.static 可以定义属性,方法,代码块
static 修饰属性表示这一个类所有的对象共同使用的一个变量指向同一个地址,一个对象改变该属性,那么所有的对象 的该属性都相应的变化了。
static修饰方法表示这个方法的调用只和类相关,与对象无关,对象时无法调用静态方法的。
static的属性和方法只能通过类名来调用。
静态代码块在类被创建的时候就执行了静态代码块中的代码。
代码块用来初始化数据,在调用函数之前就会调用该代码块中代码。
public class A{
public A(){
System.out.println("A");
}
public static void study(){
System.out.println("B");
}
static {
System.out.println("C");
}
{
System.out.println("D");
}
public static void main(String []args){
A a=new A();
a.study();
}
}
输出结果是: CDAB
public class A{
public A(){
System.out.println("A");
}
public static void study(){
System.out.println("B");
}
static {
System.out.println("C");
}
{
System.out.println("D");
}
public static void main(String []args){
A a=new A();
}
}
输出结果是: C
分享到:
相关推荐
java 关键字总结大全,最新版本的java8中所有的关键字总结
java关键字大全及解释java关键字大全及解释java关键字大全及解释
Java关键字是预先定义的具有特别意义的标识符,也可以叫Java保留字,Java关键字不能用作变量名、方法名、类名、包名和参数。
Java关键字解释,方便英文不好的Java初学者理解.
Linux中Java变量与java关键字。MyEclipse快捷键大全。Java方法 终于有东西和大家分享了 哈哈
一些关于Java关键字的描述,很详细的。其中还有代码
该文档主要介绍了java关键字的用法及说明
Java关键字大全,Java中关键字解析
.JAVA关键字和英语单词,有祝于学习Java基础的加快进步
这是我自己整理制作的50个java关键字,是用html制作的类似与API的网页格式的文档,里面内容详细,且便于查询。
Java关键字大全 doc 文档 ,学习必备,目前我看到的最好的关键字文档
Java关键字列表 上面列出了Java所有的关键字
java关键字。java关键字。java关键字。java关键字。java关键字。java关键字
整理JAVA关键字信息
java关键字解析 对java的一些关键字的意义进行解析
本文档包含了java所有的关键字以及一些说明,Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等。
本文档系统列举了Java的关键字及其用法分类
列出了常用的java关键字,并加以解释及介绍用法,很实用。