黑马程序员JAVA基础-封装
来源:互联网 发布:三维重建软件有哪些 编辑:程序博客网 时间:2024/06/05 04:34
------- android培训、java培训、期待与您交流! ----------
封装是java中的一大特点,那么什么是封装,他的好处又是什么?
封装:
是指隐藏对象的属性和实现细节,近对外提供公共访问方式
好处:
将变化隔离,便于使用,提高重用性,提高安全性
封装原则:
将不需要对外提供的内容都隐藏起来
把属性都隐藏,提供公共方法对其访问
构造函数
(1)用途:用于给对象进行初始化。
A:格式 类名(){//code}
B:Person(){}
(2)特点 你不定义空参数的构造函数,系统会自动给一个空参构造,你定义了构造函数无论是有参还空参的,
系统就不再给空参数的了。
(3)重载构造函数,是根据参数列表来区分是哪个构造函数
A:Person(){}
B:Person(String name){}
C:Person(int age){}
D:Person(String name,int age){}
注意:构造还可以用于给属性赋值。
this关键字
(1)代表当前对象的引用。使用的时候,谁调用方法,this就代表谁。
(2)什么时候使用this呢?
A:当局部变量和成员变量重名的时候,可以用this进行区分。
B:写功能的时候,可能用到this。比如比较两个对象的年龄compare()
C:构造函数中使用this
**this() 必须放在第一行。
同下面的道理:
Person(String name){
this.name = name;
}
Person(String name,int age){
//this(name);//是找带一个字符串类型参数的构造方法
this.name = name;
this.age = age;
}
代码块
(1)局部代码块 控制变量的声明周期
(2)构造代码块 每创建一次对象就执行一次。
(3)思考下面的问题
Person p = new Person();
它在内存中做了哪些事情?
A:将Person.class文件加载到内存中。
B:在堆内存中创建一个对象Person。
C:把Person中的属性进行默认初始化。
D:把Person中的属性进行显示初始化。
E:调用构造代码块(如果没有,不执行这个操作)。
F:调用构造函数进行初始化。
G:在栈内存中声明Person类型的变量P。
H:把堆内存的地址(引用)赋给了栈内存中P
static关键字
(1)静态的意思。可以修饰类的成员(成员变量和成员方法);
(2)静态成员的特点:
A:随着类的加载而加载,生命周期最长。
B:优先于对象存在。
C:被所有的对象所共享。
D:比非静态成员多了一种访问方式。可以通过类名直接调用。而且建议这样做。
(3)什么时候需要使用static修饰呢?
当类中的成员需要被所有对象共享时,用static修饰。不需要被共享时,就不用static修饰。
简单说:共性用static修饰,特性不用static修饰。
(4)注意事项
A:静态方法只能访问静态成员的。
B:静态方法中不能使用this,super关键字。
C:main是静态的。
- 黑马程序员JAVA基础-封装
- 黑马程序员--java基础--封装
- 黑马程序员--封装--java
- 黑马程序员--封装--java
- 黑马程序员-----java基础四(之封装特性)
- 黑马程序员 Java基础_4 面向对象-抽象与封装
- 黑马程序员 Java基础_4 面向对象-抽象与封装
- 黑马程序员——Java基础__封装
- 黑马程序员-java基础之面向对象,封装
- 黑马程序员<java基础<面向对象(封装,继承,多态,抽象)>>
- 黑马程序员----Java基础之面向对象(封装 继承 多态)
- 黑马程序员----java基础面向对象特点及封装
- 黑马程序员——java基础_封装、构造函数
- 黑马程序员------java基础
- 黑马程序员-Java基础
- 黑马程序员----JAVA基础
- 黑马程序员--Java基础
- 黑马程序员-Java基础
- 在WYSIWYG模块中为Drupal 7配置CKEditor 4
- 如何将sql 执行的错误消息 记录到本地文件中
- Math.Round() -- c# 与 java的区别
- php初学4-变量范围
- Linux驱动之与硬件通信
- 黑马程序员JAVA基础-封装
- 【只要真实,今生无悔】
- 宋宝华 《Linux设备驱动开发详解》之基本字符设备驱动misc版本
- 错误:'release' is unavailable: not available in automatic reference counting mode.(Xcode 4.6.2+iOS6.1)
- ICE技术概论
- Android Light Sensor
- Mysql 5.6 Can't find messagefile '/usr/share/mysql/errmsg.sys'解决方法
- myeclipse无法安装插件的问题
- matlab 和 excel 数据的导入导出 [李园7舍_404]