所谓的关键字是指电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。
Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名。
接下来介绍一下Java里常用的关键字:
1、访问控制修饰符,可以应用于类、方法和字段(也就是在类中声明的变量)下面就是这些访问修饰符。
权限从大到小依次为:
public:在同一个工程里可以到处使用。
protected:在同一个包中或者“不在同一个包中的子类”可以使用,所以说它的权限要比默认的大
默认的:所有类的默认访问权限都是package访问,也就是说除非存在特定的访问修饰符(比如public、protected、private),否则可以从一个包中的任何类访问类成员
private:只能在声明private(内部)类、方法或者字段的类中引用这些类、方法和字段,而在类的外部或者类的子类中,它们是不可见的。
注:在这几个访问修饰符中,并不是范围越大越好,应该根据需要选择最适合的访问修饰符;在接口中的属性和方法必须是public ,默认是public;子类在重写父类的方法时候,不能减小方法的可见范围,原因是重写也叫覆写,修饰符、返回类型、参数就是要和父类一摸一样才叫覆写,意思是说各个地方都需要完美的盖住,在面向接口编程中,重写是子类有自己的逻辑要实现,同时又不破坏已写好程序逻辑的办法
2、super 和 this
super
此关键字用于引用使用该关键字的类的父类,初学Java阶段主要用到它的地方是强制引用父类中的方法或属性。
如果在子类的构造方法中,没有明显地写出super关键字来调用父类的某个构造方法,那么默认有如下语句:super();
即调用父类的不带参数的构造方法。
子类可以通过方法的重写隐藏继承的方法
如果用户在子类中想使用被子类隐藏的成员变量或方法就可以使用关键字super。
当super调用隐藏的方法时,该方法中出现的成员变量是被隐藏的成员变量
this
Java中为解决变量的命名冲突和不确定性问题,引入关键字“this”代表其所在方法的当前对象:
当参数名和属性名相同的时候 ,那么使用this来区分参数和属性,加了this的表示属性,没有加的则表示参数;this是用来表示当前调用方法的对象,哪一个对象在调用方法,方法中的this就表示该对象,类似生活中的“我”这个词。
this只能用于方法方法体内。当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是this。因此,this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this。并且this只和特定的对象关联,而不和类关联,同一个类的不同对象有不同的this。
下面给出一个使用super和this的实例,以便说明问题:
class Person {
private String name;
public Person() {
name = "1号";
}
public Person(String n) {
name = n;
}
public String getName() {
return name;
}
public void sayHello() {
System.out.println("大家好!我是" + name);
}
}
class Student extends Person {
private int sid;
public Student() {
super();//这是Eclipse中自动生成的,说明了“在子类的构造方法中,必须通过super的形式调用父类的构造方法,如果没有调用,JVM会以"super()"的形式调用父类的无参构造方法”
sid = -1;
}
public Student(String name,int id) {
//sid = id;//我试了下,把这句话放这里是编译不过去的
super(name);
sid = id;
}
public void sayHello() {
System.out.println("大家好!我是学生" + super.getName());
//在子类中,super表示对父类的引用
}
}
//程序的入口
public class Test {
public static void main(String[] args) {
Person p = new Person("2号");
p.sayHello();
Student s1 = new Student();
s1.sayHello();
Student s2 = new Student("3号",001);
s2.sayHello();
}
}
/*运行结果:
大家好!我是ZhangSan
大家好!我是学生unknow
大家好!我是学生LiSi
*/
this
class Person {
private String name;
public Person() {
//name = "unknow";
//this(name); 这两种写法是错误的
this("unknown");//调用本类当中的构造方法Person(String name)
}
public Person(String name) {
this.name = name;//this表示本类当前对象的引用
}
public String getName() {
return name;
}
public void sayHello() {
System.out.println("大家好!我是" + name);
}
}
public class Test{
public static void main(String[] args) {
Person p = new Person("wangyinghua");
p.sayHello();
}
}
//运行结果:大家好!我是wangyinghua
3、final,static
static:
static意为静态的,只能定义属性,方法,代码块。
被static修饰的成员变量和成员方法独立于该类的任何对象。
按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量;另一种是没有被static修饰的变量,叫实例变量。
静态方法 (静态成员的访问)
静态成员是属于类的, 调用一个静态方法就是“类名.方法名”,调用一个静态成员就是“类名.变量名”,
静态方法可以直接通过类名调用,任何的实例也都可以调用,因此静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法(就是不带static的成员变量和成员成员方法),只能访问所属类的静态成员变量和成员方法。因为实例成员与特定的对象关联!
因为static方法独立于任何实例,因此static方法必须被实现,而不能是抽象的。
static代码块
static代码块也叫静态代码块,是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次,且Static代码块会在主函数之前执行。
请看这段代码:
public class A {
public A(){
System.out.print("A");
}
}
----------------------------------------------------------------------类B
public class B extends A {
public B(){
System.out.print("B");
}
}
----------------------------------------------------------------------
类C
public class C {
private static A a = new A();
private B b = new B();
public C(){
System.out.print("C");
}
public static void main(String args[]){
C.change();
}
public static void change(){
B b = new B();
}
}
结果是: AAB
final:
final从字面上看有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。其特点有:
final类不能被继承,没有子类,final类中的方法默认是final的;
final方法不能被子类的方法覆盖,但可以被继承;
final成员变量表示常量,只能被赋值一次,赋值后值不再改变。
final不能用于修饰构造方法;
注意:父类的private成员方法是不能被子类方法覆盖的,因此private类型的方法默认是final类型的;
public final class A{} 表示不能被继承
private final int age=100; 表示只能赋值一次,必须初始化,不能被修改
public final void trst(){ 表示不能被重写
}
final int age=100; 表示只能赋值一次,必须初始化,不能被修改
分享到:
相关推荐
java volatile 关键字实战java volatile 关键字实战java volatile 关键字实战java volatile 关键字实战java volatile 关键字实战java volatile 关键字实战java volatile 关键字实战java volatile 关键字实战java ...
本篇文章将深入探讨如何使用iText库在Java中实现PDF关键字定位。iText是一个强大的PDF处理库,它提供了丰富的API来创建、编辑和读取PDF文档。 首先,我们需要在项目中引入iText库。你提到的`itextpdf-5.5.6.jar`是...
在Java编程语言中,`super`关键字是一个非常重要的概念,它允许我们引用当前对象的父类中的成员。这个关键字在处理继承关系时尤其有用,帮助我们实现多态性并访问被隐藏或重写的成员。本篇文章将深入探讨`super`...
### Java关键字、标识符、注释详解 #### 关键字(Keywords) 在Java语言中,关键字是具有特殊意义的保留字,它们不能用作变量名、方法名或类名等标识符。Java的关键字用于定义程序结构的重要组成部分,如控制语句、...
Java拥有51个关键字,这些关键字在编程中扮演着核心角色,用于声明类型、控制流程、异常处理等。下面我们将逐一介绍这些关键字: 1. **abstract**:用于定义抽象类和抽象方法,表示该类不能被实例化,或方法没有...
在执行分析时,程序首先会读取指定的Java源代码文件,然后逐行扫描,检查每行中是否存在Java关键字。为了实现这一点,程序可能使用正则表达式或者预定义的关键词列表来进行匹配。接着,对于每个匹配到的关键字,程序...
在Java编程语言中,实现根据关键字查找文件夹内包含该关键字的文件是一项常见的任务,尤其在数据处理、日志分析或者文件管理系统中。这个功能可以帮助用户快速定位到含有特定信息的文件,提高工作效率。以下是一个...
在编程语言的学习中,了解和掌握关键字是至关重要的一步,特别是在Java这种强类型的语言中。本文将深入探讨Java中的关键字,这些关键字是Java语法结构的基础,它们被Java编译器特殊处理,有着特定的含义和功能。 ...
通过args传参,读取文件,统计java代码中的关键字个数
Java关键字大全是Java编程语言中最基本和最重要的组成部分。这些关键字是Java语言的基础构建块,用于定义类、方法、变量、控制流、异常处理等。了解和掌握Java关键字是每一个Java开发者必备的技能。 下面是Java...
根据给定的部分内容,我们可以列出以下Java关键字: 1. **abstract** 2. **continue** 3. **for** 4. **new** 5. **switch** 6. **assert** 7. **default** 8. **if** 9. **package** 10. **synchronized** 11. **...
首先,让我们来谈谈“Linux中Java变量与java关键字”。在Java编程中,变量是存储数据的容器,它们可以是基本类型(如int、float、boolean等)或引用类型(如对象)。在Linux环境下,Java程序的运行与Windows或Mac...
以下是对给定文件中提到的Java关键字进行的详细解释与总结: #### 1. `abstract` - **用途**:`abstract`关键字用于声明抽象类或抽象方法。抽象类不能被实例化,但可以被其他类继承;抽象方法没有具体实现,必须由...
揽括了java中常见的关键字及用法,包括Abstract、instanceof、private、protected等等。
Java 中 super 关键字的三种用法 Java 中的 super 关键字有三种用法:在子类的构造函数中调用父类的构造方法、在子类中访问父类的成员变量或方法、在子类的构造函数中直接传递参数给父类的构造方法。 首先,在子类...
在Java编程语言中,`final`关键字扮演着一个至关重要的角色,它被用来声明一个变量、方法或类为不可变的。在这个学习demo中,我们将深入理解`final`关键字的各种用法及其背后的原理。 首先,`final`关键字用于变量...
Java中的`synchronized`关键字是多线程编程中的一个重要概念,用于控制并发访问共享资源时的同步机制。在Java中,当多个线程试图同时访问和修改同一块代码或数据时,可能会导致数据不一致的问题。为了解决这个问题,...
Java 关键字是编程语言中预定义的具有特殊含义的标识符,它们是构建和管理程序结构的关键元素。本文将详细解析 Java 中的访问控制关键字,以及类、方法和变量修饰符。 首先,我们来看看访问控制关键字: 1. **...
Java 中的 static 关键字 Java 中的 static 关键字是用于声明类的成员变量和成员方法的,它可以使得变量和方法属于类本身,而不属于某个对象。静态变量也称为类变量,静态方法也称为类方法。静态变量和静态方法可以...
Java 语言中有四个重要的概念:关键字、标识符、注释和转义字符。这些概念是 Java 语言的基础,理解这些概念对于编写 Java 代码非常重要。 一、Java 关键字 Java 关键字是 Java 语言中具有特殊含义的词,例如 ...