面向对象及构造代码块、静态代码块、构造函数的区别
来源:互联网 发布:淘宝刷手被发现 编辑:程序博客网 时间:2024/06/06 02:04
面向对象编程
1.封装性
面向对象编程核心思想之一就是将数据和对数据的操作封装在一起,通过抽象即从具体的实例中抽取共同的性质形成一般的概念。
2.继承
子类可以继承父类的属性和功能,即子类继承了父类所有的数据和数据上的操作,同时又可以添加子类独有的数据和数据上的操作。
3.多态有两种意义的多态
1)操作名称的多态
2)和继承有关的多态
类:
习惯上类名的第一个字母大写。
编写类的目的是为了描述一类实物共有的属性和功能。类提的内柔有两部分构成:一部分是变量的定义,用来刻画属性;另一部分是方法的定义用来刻画功能。
构造函数:用于给对象进行初始化,是给与之对应的对象进行初始化,它具有针对性,函数中的一种。
特点:
1、该函数的名称和所在类的名称相同。
2、不需要定义返回值类型。
3、该函数没有具体的返回值。
记住:所有对象创建时,都需要初始化才可以使用。
注意事项:一个类在定义时,如果没有定义过构造函数,那么该类中会自动生成一个空参数的构造函数,为了方便该类创建对象,完成初始化。如果在类中自定义了构造函数,那么默认的构造函数就没有了。
一个类中,可以有多个构造函数,因为它们的函数名称都相同,所以只能通过参数列表来区分。所以,一个类中如果出现多个构造函数。它们的存在是以重载体现的。
构造函数和一般函数有什么区别呢?
1、两个函数定义格式不同。
2、构造函数是在对象创建时,就被调用,用于初始化,而且初始化动作只执行一次。
一般函数,是对象创建后,需要调用才执行,可以被调用多次。
构造代码块和构造函数有什么区别?
构造代码块 :给对象进行初始化,对象一建立就运行而且优于构造函数执行。
构造代码块和构造函数的区别 :构造代码块是给所有对象进行统一初始化,而构造函数是给指定的对象进行初始化。
People p = new People();
创建一个对象都在内存中做了什么事情?
1、先将硬盘上指定位置的People.class文件加载进内存。
2、执行main方法时,在栈内存中开辟了main方法的空间(压栈-进栈),然后在main方法的栈区分配了一个变量p。
3、在堆内存中开辟一个实体空间,分配了一个内存首地址值。new
4、在该实体空间中进行属性的空间分配,并进行了默认初始化。
5、对空间中的属性进行显示初始化。
6、进行实体的构造代码块初始化。
7、调用该实体对应的构造函数,进行构造函数初始化。
8、将首地址赋值给p ,p变量就引用了该实体。(指向了该对象)
class TestDemo{ static { System.out.println("主函数静态代码块"); } public static void main(String[] args) { System.out.println("主函数开始"); People p1 = new People(1); People p = new People(); System.out.println("主函数结束"); }}class People{//程序先运行静态代码块-->构造代码块-->构造函数//构造代码块 { System.out.println("People构造代码块"); } //静态代码块 static { System.out.println("People静态代码块"); } //构造函数 People() { System.out.println("空参构造函数"); } People(int num) { System.out.println("一个参数的构造函数"); } }输出结果:
- 面向对象及构造代码块、静态代码块、构造函数的区别
- 静态代码块 构造代码块 构造函数 区别
- 黑马程序员-面向对象(构造函数、构造代码块、静态代码块)
- 面向对象 构造代码块 静态代码块
- java中普通代码块,静态代码块,构造代码块的区别及代码示例
- 静态代码块,构造代码块,普通代码块-三者的执行顺序及区别
- 【面相对象】静态代码块、构造代码块和构造函数的执行顺序
- 黑马程序员-静态代码块、构造代码块、构造函数的区别、
- 静态代码块,构造代码块和构造函数的区别
- 黑马程序员——构造函数,构造代码块,静态代码块的区别
- 静态代码块、构造代码块与构造函数的区别
- Java构造函数、构造代码块和静态代码块的区别和调用时间
- 父类、静态构造代码块、构造代码块、构造函数
- 【26】静态代码块、构造代码块和构造函数的特点及加载顺序
- 静态代码块,构造代码块,构造函数之间的差别及先后执行顺序
- Java中普通代码块,构造代码块,构造函数,静态代码块区别
- 静态代码块和构造代码块的区别
- Java中静态代码块、构造代码块的区别
- 经典算法题——第十三题 赫夫曼树
- DirectX11 雾
- 深入详解保护模式下的内存分页机制
- linux文件处理命令之链接命令ln
- 常用几个结构体
- 面向对象及构造代码块、静态代码块、构造函数的区别
- iOS开发 —— MVVM设计模式
- 在Xcode的模拟器中的textField中输入中文
- 条款14:在资源管理中心小心copy行为之重难点
- 证券基础--风险投资《阿凡达》的幕后英雄
- 黑马程序员——Java基础日记——面向对象
- complex-list代码解析
- USACO 2.4 Cow Tours (Floyd最短路径 + DFS)
- A016-布局之RelativeLayout