102.JAVA关键字
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
封装的原则 1, 通常属性都是隐藏起来的 2, 开发的时候,不需要对外提供的都隐藏起来
2,用于定义类,函数,变量修饰符的关键字 abstract final 能加强类和方法的封装性。想当是一把锁, 1, final 可以修饰属性,方法,类。 2, 当一个类被 final 修饰时,表示该类是一个终态类,即不能被继承,方法不能被 复写,字段不能被修改。 3, final 修饰方法表示该方法是一个终态方法,即不能被重写(Override) 4, final 修饰属性,表示该属性不能被改写。 a) 当 final 修饰一个原生数据类型时,表示该原生数据类型的值不能发生改 变,(比如;不能从 10 变成 20;) b) 如果 final 修饰一个引用类型时,表示该引用类型不能在指向其他对象, 但该对象的内容是发生变化的。 5, final 修饰的成员变量有两种赋初值的方式, a) 在声明 final 类型的成员变量时就赋上初值。 b) 在声明 final 类型的成员变量时不赋值,但在类的所有构造方法中都为其 赋值。 6, 一个类不能既是 final,又是 abstract ,因为 abstract 主要定义一种约定,让子 类去实现这种约定,而 final 表示该类不能被继承。 7, 内部类定义在类中的局部位置上的时候,只能访问用 final 修饰的局部变量,
用于定义数据类型值的关键字 true false null instanceof;判断某个对象是否是某个类的实例, 语法形式;引用名 instanceof 类名(接口名)返回一个 boolean 值。 System。out。println(Man instanceof People);ture
用于定义流程控制的关键字;流程就是做一件事情的顺序,在程序设计中,流程就是要完成 一个功能。
那调用的方法是怎么得到返回值的呢?
public static void main(String[] args){ int num = run(); System.out.println(num);
}
public static int run(){//有返回值 int x = 1; return x++;// x++是先将 1 赋值给 x ,装到一个箱子中保存给调用者,x 再加加,然
关键字:所有关键字都是小写的。Java 语言赋予特殊含义的单词。 1, 用于定义访问权限修饰符的关键字 :实现类的封装性,一个类通常就是一个小的模块,
我们应该让模块仅仅公开必须要让外界知道的内容,而隐藏其他一切内容。而在进行程 序的详细设计时,应避免一个模块直接修改和操作另一个模块的数据,模块的设计追求 强内聚,许多功能尽量在类的内部独立完成,弱耦合,提供给外部尽量少的方法调用。
下面的好好理解。 class Container {
Component comp; public void addXomponent(){
comp = new Component(this);//将this作为对象的引用传递。 } } class Component{ Container myContainer; public Component(Container c){
static 1, 静态可修饰(成员变量)属性,可以修饰方法,还可修饰类。 2, 静态变量被类的所有实例所共享,而实例存储的是特有的数据。 不同的类间可以用类名访问,类内部用变量名直接访问。 3, 静态变量在所在类加载时就完成了初始化,什么是初始化?initialization (赋值 的过程。) 4, 静态方法内部不能直接访问外部非静态的成员,对非静态的访问需要创建对 象。 也就是静态方法只能够访问静态成员(访问的局限性) 5, 静态方法中不能使用 this 关键字,因为类加载时本类还没有生成对象,this 无 从引用。 6, 静态的生命周期最长,随类的加载而加载,优先于对象存在,所以不能定义重 名的静态。 7, 静态方法不存在继承,不能重写。 8, 非静态成员方法能直接访问本类中的静态成员和非静态成员。 9, 主函数是静态的。
代码块,一直执行到最底层类的静态代码块,然后再去执行最顶层类的构造方 法,一直执行到最底层的构造方法。 synchronized
3,用于定义类和类之间关系的关键字 extends 打破了封装性。 1 继承中的变量关系 a) 子类和父类中的同名变量需要使用 this 和 super 引用。 b) 父类中有的变量而子类中没有的变量,可以在子类中直接的调用,除非是用 private 修饰。 c) 变量是没有覆盖特性的。 d) 父类的变量是和子类的变量是在同一个堆内存中的。
什么时候使用 Static 关键字: 对于成员属性:在描述类时,要求该属性在每个对象中的值是相同的,就将该属性定义 成 Static 对于成员函数:如果该类所有函数不用访问对象中封装的特有数据,用 Static 修饰。 该方法所在类就不需要建立对象,为了严谨性,将该类的构造函数私有化, 强制不让使用者建立对象。只要用类名调用即可。 Static 代码块
this 代表的是一个本类对象的引用。对象的类型是确定的。具体是哪个对象,就要 看是哪个对象调用 this 所在类的对象。
1, this 关键字一般用于方法中,this 代表一个对象的引用,具体引用那个对象, 就看调用 this 所在方法的是那个对象。
2, 需要在类中指明使用对象自己的变量或函数时,就应该加上 this,此时的 this 是指当前对象自己。This.name=name;
if else switch case default while do for break continue
return return 的用法:方法的 return 是最后一步,return 后方法才能被释放。
既然 return 了,方法就会出栈释放,那 return 一个返回值,这个返回值的变量也就释放 了,
a) 直接编译,然后根据类中所定义的包名,逐一手工建立目录结构,最后将生成 的 class 文件放到该目录结构中,(比较麻烦)
b) 使用编译参数-d,方式为 javac —d。源文件。java,这样在编译后,编译器会 自动帮我们建立好包所对应的目录结构。
5, 有两个包名,分别是 aa。bb。cc 与 aa。bb。cc。dd,我们称后者是前者的子包。
String name;
int age; ThisDemo(String name){
this.name = name; } ThisDemo(String name,int age){
/*在构造函数中用this调用另一个构造函数。*/ this(name); this.age= age; } }
import 导入,把使用 package 分离的包导入回来,让编译器能找到所需要的类。 如果两个类在同一个包里面,那么则不需要导入,直接使用即可。
7,其他修饰符关键字 native stictfp transient volatile assert
8,用于定义数据类型的关键字 class interface; bytes short int long float double char boolean void
1, 它是类进内存第一个被执行的代码块。 2, 静态代码块的作用是完成一些初始化工作,首先执行静态代码块,然后执行构
造方法。 3, 静态代码块在类加载的时候执行,而构造方法是在生成对象的时候执行, 4, 静态代码块只会执行一次,因为类只加载一次,而构造方法不同,new 一次就
会调用构造函数一次。 5, 如果继承体系中既有构造方法,又有静态代码块,首先执行最顶层的类的静态
3, 内部类中的 this 代表内部类对象,若想引用外部类对象,this 前面需要加外部 类的类名。
4, 在构造函数中,可使用 this(实参)来调用该类的其他构造函数。需注意,调 用代码只能在第一行,在别的方法中不能这样调用构造函数,在一个构造函数 中只能调用一个构造函数。
public class ThisDemo {
new 1, new 关键字在生成对象时完成了三件事: a) 为对象开辟了内存空间 b) 调用了类的构造方法 c) 将生成的对象地址值返回给调用者。
对 Person p = new Person(); 的理解 1, 将 Person.class 文件加载进内存。 2, 在堆内存中开辟对象空间,并分配内存地址值。 3, 对对象中的属性进行默认初始化 4, 对对象中的属性进行显性初始化 5, 对对象进行构造代码块初始化 6, 对象进行对应的构造函数初始化。 7, 在栈内存建立 p 变量, 8, 将对象的地址值赋给 p,让 p 指向该对象。 一个类用什么方式创建一个对象? 回答是构造器,构造函数。
封装;是一种编程思想,将实现细节进行隐藏,对外提供公共的访问对其访问的方法 私有是封装的体现之一 函数是最小的封装体,类,包,框架都是封装体 好处: 1,提高了安全性,将属性或功能隐藏,防止非法改动或误操作带来的不符合逻辑和不稳定 2, 提高了复用性 能根据需要多次调用 3, 隔离了变化 保持整体性,方便后期的维护 4, 便于使用 更能强化开发人员的面向对象的思维,满足客户的要求
后方法就被释放了, }
关于 package,import ,class 的顺序问题 1, 首先需要定义包。可选 2, 接下来使用 import 导入,可选。 3, 然后才是 class 或 interface 的定义。
myContainer = c; } } super instanceof 5,用于处理异常的关键字 try catch finally throws throw 6,用于包的关键字 package 1, 将完成不同功能的类分门别类。放在不同的目录(包)下。 2, 包的命名规则:将公司域反转作为包名,对于包名,每个字母都需要小写。 3, 如果没有定义包,那么 java 认为我们所定义的类位于默认包里面。(default package) 4, 编译带有 package 声明的 java 源文件有两种方式:
3 继承中的构造函数关系 a) 构造函数是不能够被覆盖的。 b) 但是在调用子类对象的时候,JVM 实质是先走的父类的空参数的构造函数(不 是空参数的构造函数是不会调用的。),再走得是子类的构造函数。在子类的所 有的构造函数中的最前面,有个隐式的 super();
implements [‘impliment] 4,用于定义建立实例及引用实例,判断实例的关键字
2 继承中的方法关系 a) 子类和父类中的方法是能出现重载的。 b) 相同的方法是能够覆盖的。(返回值和方法名相同),但是子类的访问权限要大 于或者等于父类中的同名方法。父类的同名函数只是没有运行而已。 c) Private 修饰的同名函数是不能够被覆盖的, d) 覆盖的特点是编译看父类,运行看子类。
private :私有的,被 private 修饰的属性和方法只能被类内部使用。 prFra Baidu bibliotektected:受保护的,被 protected 修饰的属性和方法可在类的内部,相同包以及该类的 子类所访问。 默认 :不加任何修饰,在类内部以及相同包下面的类所使用。 public:公共的,被 public 所修饰的属性和方法可被所有的类访问。
2,用于定义类,函数,变量修饰符的关键字 abstract final 能加强类和方法的封装性。想当是一把锁, 1, final 可以修饰属性,方法,类。 2, 当一个类被 final 修饰时,表示该类是一个终态类,即不能被继承,方法不能被 复写,字段不能被修改。 3, final 修饰方法表示该方法是一个终态方法,即不能被重写(Override) 4, final 修饰属性,表示该属性不能被改写。 a) 当 final 修饰一个原生数据类型时,表示该原生数据类型的值不能发生改 变,(比如;不能从 10 变成 20;) b) 如果 final 修饰一个引用类型时,表示该引用类型不能在指向其他对象, 但该对象的内容是发生变化的。 5, final 修饰的成员变量有两种赋初值的方式, a) 在声明 final 类型的成员变量时就赋上初值。 b) 在声明 final 类型的成员变量时不赋值,但在类的所有构造方法中都为其 赋值。 6, 一个类不能既是 final,又是 abstract ,因为 abstract 主要定义一种约定,让子 类去实现这种约定,而 final 表示该类不能被继承。 7, 内部类定义在类中的局部位置上的时候,只能访问用 final 修饰的局部变量,
用于定义数据类型值的关键字 true false null instanceof;判断某个对象是否是某个类的实例, 语法形式;引用名 instanceof 类名(接口名)返回一个 boolean 值。 System。out。println(Man instanceof People);ture
用于定义流程控制的关键字;流程就是做一件事情的顺序,在程序设计中,流程就是要完成 一个功能。
那调用的方法是怎么得到返回值的呢?
public static void main(String[] args){ int num = run(); System.out.println(num);
}
public static int run(){//有返回值 int x = 1; return x++;// x++是先将 1 赋值给 x ,装到一个箱子中保存给调用者,x 再加加,然
关键字:所有关键字都是小写的。Java 语言赋予特殊含义的单词。 1, 用于定义访问权限修饰符的关键字 :实现类的封装性,一个类通常就是一个小的模块,
我们应该让模块仅仅公开必须要让外界知道的内容,而隐藏其他一切内容。而在进行程 序的详细设计时,应避免一个模块直接修改和操作另一个模块的数据,模块的设计追求 强内聚,许多功能尽量在类的内部独立完成,弱耦合,提供给外部尽量少的方法调用。
下面的好好理解。 class Container {
Component comp; public void addXomponent(){
comp = new Component(this);//将this作为对象的引用传递。 } } class Component{ Container myContainer; public Component(Container c){
static 1, 静态可修饰(成员变量)属性,可以修饰方法,还可修饰类。 2, 静态变量被类的所有实例所共享,而实例存储的是特有的数据。 不同的类间可以用类名访问,类内部用变量名直接访问。 3, 静态变量在所在类加载时就完成了初始化,什么是初始化?initialization (赋值 的过程。) 4, 静态方法内部不能直接访问外部非静态的成员,对非静态的访问需要创建对 象。 也就是静态方法只能够访问静态成员(访问的局限性) 5, 静态方法中不能使用 this 关键字,因为类加载时本类还没有生成对象,this 无 从引用。 6, 静态的生命周期最长,随类的加载而加载,优先于对象存在,所以不能定义重 名的静态。 7, 静态方法不存在继承,不能重写。 8, 非静态成员方法能直接访问本类中的静态成员和非静态成员。 9, 主函数是静态的。
代码块,一直执行到最底层类的静态代码块,然后再去执行最顶层类的构造方 法,一直执行到最底层的构造方法。 synchronized
3,用于定义类和类之间关系的关键字 extends 打破了封装性。 1 继承中的变量关系 a) 子类和父类中的同名变量需要使用 this 和 super 引用。 b) 父类中有的变量而子类中没有的变量,可以在子类中直接的调用,除非是用 private 修饰。 c) 变量是没有覆盖特性的。 d) 父类的变量是和子类的变量是在同一个堆内存中的。
什么时候使用 Static 关键字: 对于成员属性:在描述类时,要求该属性在每个对象中的值是相同的,就将该属性定义 成 Static 对于成员函数:如果该类所有函数不用访问对象中封装的特有数据,用 Static 修饰。 该方法所在类就不需要建立对象,为了严谨性,将该类的构造函数私有化, 强制不让使用者建立对象。只要用类名调用即可。 Static 代码块
this 代表的是一个本类对象的引用。对象的类型是确定的。具体是哪个对象,就要 看是哪个对象调用 this 所在类的对象。
1, this 关键字一般用于方法中,this 代表一个对象的引用,具体引用那个对象, 就看调用 this 所在方法的是那个对象。
2, 需要在类中指明使用对象自己的变量或函数时,就应该加上 this,此时的 this 是指当前对象自己。This.name=name;
if else switch case default while do for break continue
return return 的用法:方法的 return 是最后一步,return 后方法才能被释放。
既然 return 了,方法就会出栈释放,那 return 一个返回值,这个返回值的变量也就释放 了,
a) 直接编译,然后根据类中所定义的包名,逐一手工建立目录结构,最后将生成 的 class 文件放到该目录结构中,(比较麻烦)
b) 使用编译参数-d,方式为 javac —d。源文件。java,这样在编译后,编译器会 自动帮我们建立好包所对应的目录结构。
5, 有两个包名,分别是 aa。bb。cc 与 aa。bb。cc。dd,我们称后者是前者的子包。
String name;
int age; ThisDemo(String name){
this.name = name; } ThisDemo(String name,int age){
/*在构造函数中用this调用另一个构造函数。*/ this(name); this.age= age; } }
import 导入,把使用 package 分离的包导入回来,让编译器能找到所需要的类。 如果两个类在同一个包里面,那么则不需要导入,直接使用即可。
7,其他修饰符关键字 native stictfp transient volatile assert
8,用于定义数据类型的关键字 class interface; bytes short int long float double char boolean void
1, 它是类进内存第一个被执行的代码块。 2, 静态代码块的作用是完成一些初始化工作,首先执行静态代码块,然后执行构
造方法。 3, 静态代码块在类加载的时候执行,而构造方法是在生成对象的时候执行, 4, 静态代码块只会执行一次,因为类只加载一次,而构造方法不同,new 一次就
会调用构造函数一次。 5, 如果继承体系中既有构造方法,又有静态代码块,首先执行最顶层的类的静态
3, 内部类中的 this 代表内部类对象,若想引用外部类对象,this 前面需要加外部 类的类名。
4, 在构造函数中,可使用 this(实参)来调用该类的其他构造函数。需注意,调 用代码只能在第一行,在别的方法中不能这样调用构造函数,在一个构造函数 中只能调用一个构造函数。
public class ThisDemo {
new 1, new 关键字在生成对象时完成了三件事: a) 为对象开辟了内存空间 b) 调用了类的构造方法 c) 将生成的对象地址值返回给调用者。
对 Person p = new Person(); 的理解 1, 将 Person.class 文件加载进内存。 2, 在堆内存中开辟对象空间,并分配内存地址值。 3, 对对象中的属性进行默认初始化 4, 对对象中的属性进行显性初始化 5, 对对象进行构造代码块初始化 6, 对象进行对应的构造函数初始化。 7, 在栈内存建立 p 变量, 8, 将对象的地址值赋给 p,让 p 指向该对象。 一个类用什么方式创建一个对象? 回答是构造器,构造函数。
封装;是一种编程思想,将实现细节进行隐藏,对外提供公共的访问对其访问的方法 私有是封装的体现之一 函数是最小的封装体,类,包,框架都是封装体 好处: 1,提高了安全性,将属性或功能隐藏,防止非法改动或误操作带来的不符合逻辑和不稳定 2, 提高了复用性 能根据需要多次调用 3, 隔离了变化 保持整体性,方便后期的维护 4, 便于使用 更能强化开发人员的面向对象的思维,满足客户的要求
后方法就被释放了, }
关于 package,import ,class 的顺序问题 1, 首先需要定义包。可选 2, 接下来使用 import 导入,可选。 3, 然后才是 class 或 interface 的定义。
myContainer = c; } } super instanceof 5,用于处理异常的关键字 try catch finally throws throw 6,用于包的关键字 package 1, 将完成不同功能的类分门别类。放在不同的目录(包)下。 2, 包的命名规则:将公司域反转作为包名,对于包名,每个字母都需要小写。 3, 如果没有定义包,那么 java 认为我们所定义的类位于默认包里面。(default package) 4, 编译带有 package 声明的 java 源文件有两种方式:
3 继承中的构造函数关系 a) 构造函数是不能够被覆盖的。 b) 但是在调用子类对象的时候,JVM 实质是先走的父类的空参数的构造函数(不 是空参数的构造函数是不会调用的。),再走得是子类的构造函数。在子类的所 有的构造函数中的最前面,有个隐式的 super();
implements [‘impliment] 4,用于定义建立实例及引用实例,判断实例的关键字
2 继承中的方法关系 a) 子类和父类中的方法是能出现重载的。 b) 相同的方法是能够覆盖的。(返回值和方法名相同),但是子类的访问权限要大 于或者等于父类中的同名方法。父类的同名函数只是没有运行而已。 c) Private 修饰的同名函数是不能够被覆盖的, d) 覆盖的特点是编译看父类,运行看子类。
private :私有的,被 private 修饰的属性和方法只能被类内部使用。 prFra Baidu bibliotektected:受保护的,被 protected 修饰的属性和方法可在类的内部,相同包以及该类的 子类所访问。 默认 :不加任何修饰,在类内部以及相同包下面的类所使用。 public:公共的,被 public 所修饰的属性和方法可被所有的类访问。