JavaSE-面向对象之封装
温馨提示:
本文最后更新于 2024年07月21日,已超过 271 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
- 什么是封装?
- 将某些东西包装在一起,然后以新的完整形式呈现出来。
- 封装的目的和意义?
- 提高安全,不能让外部随便调用和更改内部属性。
- 方便我们控制业务员逻辑。
- 如何实现封装?
使用private修饰成员变量。然后在给这些成员变量根据相应的需求提供相应的public的set和get方法。 - get和set方法的意义和书写形式?
权限修饰符 void setXxxx(变量类型 xxxx){ this.xxxx = xxxx; } 权限修饰符 变量类型 getXxxx(){ return xxxx; }
- this关键字
- this指代当前对象。
- this在不会发生混淆的时候可以省略。
- this(参数列表);this();表示调用本类的构造方法。
- this调用构造方法的时候,必须写在第一行。
- this.方法名();调用本类的方法。
- this.属性名;访问本类的属性。
- 什么是方法重载?返回值不同能不能作为方法重载的条件?形式参数名不同能不能作为重载条件?
- 方法重载就是相同的方法名,形式参数不一样。
- 返回值类型不一样不构成重载,方法的重载和返回值无关。只与方法名和形式参数有关。
- 形式参数名不同不能作为能不能构成重载的条件,因为参数类型一样的话,是不会构成重载,只有参数类型不一样,或个数,或顺序不一样才会构成重载,前提是方法名相同。
- 构造方法可不可以重载?
可以,不同的形参下就构成了重载。 - static关键字的作用?【重点】
- 可用于修饰成员变量,成员方法,静态代码块,让这些优先于类加载,所以这些用static修饰的类和静态代码块只能访问静态的成员变量。
- 修饰成员变量: 称为类变量,可以通过类名访问,也可通过对象访问,建议使用类名。在内存中只会存在一份,所有对象都共享。
- 修饰成员方法:静态方法,属于类方法,优先与对象加载到内存的静态方法区。
- 修饰代码块:只会执行一次,一般用于加载配置文件。 在类加载的时候执行。
- 静态代码优先与类构造器执行。
- 静态变量和成员变量的区别?【重点、难点】
- 静态变量又称类变量。静态变量是一个类加载之后所有所有的对象都是共用这一个变量。也就是说,它只会存在一份,所有的对象都是访问这一个,修改了之后所有的对象里面的值也都是修改了。只有这个程序结束了才会回到这个类变量给定的初始值。
- 成员变量是只有在这个类new出来之后才会有的,而且每个对象的这个变量都是互不影响的。这个对象给了这个变量一个值,那个对象给了另外的值,这两个值是不会覆盖谁的值,互不影响的。
- 包,打包和导包分别使用什么关键字?
- 打包 package 包名
- 导包 import 包名.类名
- 一个java文件中允不允许有多行package语句?
不能,而且package只能在第一行。 - 允不允许有多个import语句?
可以。
在我理解中:导包的本质应该就是简化书写吧,不适用import,也是可以找到这个对象,如下
这样也是可以的,但是这样的话,很麻烦,而且代码会看起来很凌乱。java.util.Scanner sc = new java.util.Scanner(System.in);
- 哪个包中的类不需要导包?
java.lang - 成员变量、局部变量和静态变量的区别
成员变量 | 局部变量 | 静态变量 | |
---|---|---|---|
定义位置 | 类中,方法外 | 方法中,方法签名中 | 类中,方法外 |
初始化 | 有默认初始化 | 没有默认初始化,要赋值才能使用 | 有默认初始化 |
调用方式 | 对象实例调用 | ---- | 对象调用(不推荐),类名调用 |
存储位置 | 堆中 | 栈中 | 方法区 |
生命周期 | 与类共存 | 与方法共存 | 与类共存 |
别名 | 实例变量 | ---- | 类变量 |
正文到此结束
- 本文标签: Java
- 本文链接: https://fxyh.top/article/15
- 版权声明: 本文由fxyh原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权