1、访问限定符
修饰:修饰类、属性、方法、构造方法
限定的范围:项目、包、类
包括: public 同一个项目
protected 同一个包、(相同包或不同包)子类
默认的 同一个包
private 同一个类
注意点:private 修饰类时,只能在内部嵌套使用
在子类中方法被重写时,不可减小访问限定符
2、this
作用: 表示当前正在被操作(调用)的对象
在构造方法中调用本类的某一个构造方法
注意点:在构造方法中调用构造方法,必须在第一行
3、super
作用: 本类的父类对象(常用在在子类中调用父类方法时)
在子类的构造方法中调用父类的构造方法
注意点:在构造方法中调用构造方法,必须在第一行
4、this与super的区别:
(1)属性:访问本类中的属性,本类没有则从父类中访问;直接访问父类中的属性
(2)方法:访问本类中的方法,本类没有则从父类中访问;直接访问父类中的方法
(3)构造:调用本类的构造方法,必须放在构造方法的首行;调用父类的构造方法,必须放在子类构造方法的首行;
(4)特殊:表示当前对象;表示本类的父类对象
5、final
使用final声明 :类---不能有子类,不能被继承
方法----不能在子类中被重写
属性----变量变为常量,不能被修改
注意点:常量只能被赋值一次
全局常量:static final声明的变量
6、static
(1)程序运行过程:
装载类:static声明的属性、代码块执行(static声明的方法在被调用时执行)
创建对象:非静态属性、代码块执行
(2)声明属性: 全局属性,一个属性可以被对象所公用
修改一个对象的属性,其他对象的属性全部改变
对象.属性 相当于 类.属性
(3)声明方法: 只与对象的类型有关
没有static声明的方法:先看其类中是否有对应的方法,再看对象:new 类 ();这个类
(4)声明类: 可声明内部类,然后用外部类.内部类的形式使用
注意点:static属性、代码块在对象没有实例化时就可以调用和执行了
static代码块:在装载时初始化数据
非静态代码块:在对象实例化时初始化数据(不常用)
7、代码块(补充)
{}的部分
包括: 普通代码块:直接定义在方法中的代码
构造块:将代码块定义在类中
构造块优先于构造方法执行
只要实例化对象产生,就执行构造块
静态代码块:直接使用static声明的代码块
不论实例化多少次对象,只执行一次
为静态属性初始化
同步代码块
优先顺序:在主方法所在类中定义的静态代码块——主方法——
——普通类中的静态代码块——构造块——构造方法
8、ABC练习的总结与扩展
public class A { public A(){ System.out.println("A"); } } public class B extends A{ public B(){ System.out.println("B"); } } public class C { public static A a = new A(); public B b = new B(); public C(){ System.out.println("C"); } public static void main(String[] args) { C.change(); } public static void change(){ B b1 = new B(); } }
运行结果: A
A
B
public class A { public A(){ System.out.println("A"); } } public class B extends A{ public B(){ System.out.println("B"); } } public class C { public static A a = new A(); public B b = new B(); public C(){ System.out.println("C"); } public static void main(String[] args) { C c=new C(); c.change(); } public void change(){ B b1 = new B(); } }
运行结果:
A
A
B
C
A
B
public class A { public A(){ System.out.println("A"); } { System.out.println("1"); } static{ System.out.println("2"); } } public class B extends A{ public B(){ System.out.println("B"); } } public class C { static{ System.out.println("3"); } { System.out.println("4"); } public static A a = new A(); public B b = new B(); public C(){ System.out.println("C"); } public static void main(String[] args) { C c=new C(); c.change(); } public void change(){ B b1 = new B(); } }
运行结果:
3
2
1
A
4
1
A
B
C
1
A
B
练习的总结:
优先顺序:在主方法所在类中定义的静态代码块——静态属性——主方法——实例化对象
——普通属性——普通构造块——构造方法——所调用的方法
普通类中的静态代码块——构造块——构造方法
static属性和代码块,在装载类时已然可以实现;
普通的属性的代码块则需要在实例化对象是才可以实现;
static代码块只会执行一次。
相关推荐
以上是Java中的主要关键字总结,每个关键字都在不同的场景下发挥着重要作用,理解并熟练掌握这些关键字对于编写高效、可靠的Java代码至关重要。对于更深入的学习,可以参考指定的博文链接或其他相关资料进行研究。
Java 关键字总结 Java 关键字是 Java 编程语言中的一种特殊词语,用于定义、声明和控制程序的流程。以下是 Java 中 48 个关键字的总结: 1. abstract:abstract 关键字可以修改类或方法。abstract 类可以扩展...
### Java关键字总结 Java是一种广泛使用的面向对象编程语言,它具备简单性、可移植性、高性能等特点。在Java中,关键字具有特殊的语法含义,不能用作标识符(例如变量名或方法名)。以下是对给定文件中提到的Java...
js关键字总结.docx
js关键字总结.pdf
java中常用关键字总结
### Java关键字总结珍藏版(48个) #### 1. abstract - **定义与用途**:`abstract`关键字在Java中主要用于定义抽象类和抽象方法。抽象类是指那些不能直接实例化的类,它们通常会被继承来提供进一步的实现细节。而...
常用Selenium2Library关键字总结,用于后期自己学习。
下面是对Java关键字的详细总结,按照给出的部分内容进行排列: 1. `abstract`: - `abstract` 关键字用于声明抽象类或抽象方法。抽象类不能被实例化,只能作为其他类的基类。抽象方法没有具体的实现,必须在子类中...
总结来说,C++中的static关键字提供了一种机制,可以控制变量和函数的作用域和生命周期,使其在需要的地方得到合理的存储和访问。正确地理解和使用static关键字,可以帮助编写出更加高效、安全和易于维护的代码。
Java中的关键字this、final以及super在编程中扮演着至关重要的角色。下面我们将深入探讨这些关键字的用法和意义。 首先,`this`关键字是Java中一个非常基础且实用的元素,它代表当前对象的引用。当类的成员变量与...
### Java关键字总结 #### 1. final数据 - **对于基本类型**:加上`final`修饰符后的变量被视为常量,不可更改。若一个变量同时被`static`和`final`修饰,则意味着它只占据了一段固定且不可变的存储空间。 - **对象...
Java 关键字是编程语言中具有特殊含义的保留词汇,它们在编程中扮演着至关重要的角色。本篇文章将深入解析 Java 中的一些关键关键字,并提供相关的编程示例。 1. `abstract` 关键字: `abstract` 可以用于修饰类和...
Java编程语言中有许多关键字,这些关键字在不同的场景下发挥着重要的作用。以下是对这些关键字的详细解释: **final关键字** 1. 当`final`应用于类时,意味着该类不能被继承,没有子类。 2. 如果`final`修饰方法,...
这篇总结将深入探讨一些Swift中的不常用关键字及其用法。 1. `as` - 类型转换关键字。`as`用于在运行时进行类型转换,如强制解包或在多态上下文中指定类型。 ```swift let anyObject: Any = "Hello" let string = ...
Java 关键字是编程语言中具有特殊含义的保留词汇,它们不能用作变量名、方法名或类名。Java 具有48个关键字,这些关键字在程序中起到至关重要的作用,控制着程序的结构和行为。下面是对这些关键字的详细解释: 1. `...
Java关键字大全 Java语言中有多种关键字,每个关键字都有其特定的用途和作用。下面是Java关键字大全的详细解释: 1. abstract关键字 abstract关键字可以修改类或方法。abstract类可以扩展(增加子类),但不能...
### RobotFramework常用关键字详解 **RobotFramework** 是一款强大的自动化测试框架,支持多种语言和工具的集成,使得自动化测试变得更加灵活高效。本文旨在详细介绍由 **Builtin** 库提供的若干常用关键字及其应用...