面向对象要点(构造函数)

每创建一个类的实例都去初始化它的所有变量是乏味的。如果一个对象在被创建时就完成了所有的初始工作,将是简单的和简洁的。因此,Java在类里提供了一个特殊的成员函数,叫做构造函数(Constructor)。 
  一个构造函数是对象被创建时初始对象的成员函数。它具有和它所在的类完全一样的名字。一旦定义好一个构造函数,与new运算符一起使用,创建对象时就会自动调用它。构造函数没有返回类型,即使是void类型也没有。这是因为一个类的构造函数的返回值的类型就是这个类本身。构造函数的任务是初始化一个对象的内部状态,所以用new操作符创建一个实例后,立刻就会得到一个清楚、可用的对象。

构造方法是一种特殊的方法,具有以下特点。 
(1)构造方法的方法名必须与类名相同。 
(2)构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。 
(3)构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。 
(4)构造方法不能由编程人员调用,而要系统调用。

(5)构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用(即在new的时候就开始执行构造函数里面的语句);而一般的方法是在程序执行到它的时候被调用的.
(6)一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。 
(7)构造方法可以重载,以参数的个数,类型,或排列顺序区分。

(8)当定义一个类的时候,如果程序员不创建构造函数,则Java编译器就会提供一个默认的不带参数的构造函数。创建对象时系统就会自动调用这个默认的构造函数来创建类的对象。

package day2;
public class Test5 extends A1 {
         Test5() {
             System.out.println("Test5");
         }
         class Test{
             Test(){
                 System.out.println("Test");
             }
         }
         //初始化块
         {
             System.out.println("初始化块");
         }
         Test t;
         /**
          * @param args
          */
         public static void main(String[] args) {
             new Test5();
         }
    }
    class A1 {
//        private A1()
//        {}

         public A1() {
             System.out.println("AAA");
         }
         {
             System.out.println("456");
         }
    }

456
AAA
初始化块
Test5

 
构造函数 

是一种特殊的方法 主要用来在创建对象时初始化对象 即为对象成员变量赋初始值总与new运算符一起使用在创建对象的语句中 特别的一个类可以有多个构造函数 可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载
构造函数与其他方法的区别 
1.构造函数的命名必须和类名完全相同;而一般方法则不能和类名相同.
2.构造函数的功能主要用于在类的对象创建时定义初始化的状态.它没有返回值,也不能用void来修饰.这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择.而其他方法都有返回值.即使是void返回值,尽管方法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的.
3.构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用,一般方法在程序执行到它的时候被调用.
4.当定义一个类定义的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略不去Java编译器会提供一个默认的构造函数.此默认构造函数是不带参数的.而一般方法不存在这一特点
时间: 2024-10-22 13:32:13

面向对象要点(构造函数)的相关文章

C++ Primer 学习笔记_68_面向对象编程 --构造函数和复制控制[续]

面向对象编程 --构造函数和复制控制[续] 三.复制控制和继承 合成操作对对象的基类部分连同派生类部分的成员一起进行复制.赋值或撤销,使用基类的复制构造函数.赋值操作符或析构函数对基类部分进行复制.赋值或撤销. 类是否需要定义复制控制成员完全取决于类自身的直接成员.基类可以定义自己的复制控制而派生类使用合成版本,反之,基类使用合成版本,而派生类使用自己定义的复制控制也可以. 只包含类类型或内置类型的数据成员.不包含指针的类一般可以使用合成操作,复制.赋值或撤销这样的成员不需要使用特殊控制.但是:

C++ Primer 学习笔记_68_面向对象编程 -构造函数跟复制控制[续]

面向对象编程 --构造函数和复制控制[续] 三.复制控制和继承 合成操作对对象的基类部分连同派生类部分的成员一起进行复制.赋值或撤销,使用基类的复制构造函数.赋值操作符或析构函数对基类部分进行复制.赋值或撤销. 类是否需要定义复制控制成员完全取决于类自身的直接成员.基类可以定义自己的复制控制而派生类使用合成版本,反之,基类使用合成版本,而派生类使用自己定义的复制控制也可以. 只包含类类型或内置类型的数据成员.不包含指针的类一般可以使用合成操作,复制.赋值或撤销这样的成员不需要使用特殊控制.但是:

python之面向对象与构造函数

一.面向对象介绍 不同的编程范式本质上代表对各种类型的任务采取的不同的解决问题的思路, 大多数语言只支持一种编程范式, 当然也有些语言可以同时支持多种编程范式. 两种最重要的编程范式分别是面向过程编程和面向对象编程. 框架: 世界万物,皆可分类 世界万物,皆为对象 只要是对象,就肯定属于某种类 只要是对象,就肯定有属性 Encapsulation 封装 在类中对数据的赋值.内部调用对外部用户是透明的,这使类变成了一个胶囊或容器,里面包含着类的数据和方法 Inheritance 继承 一个类可以派

面向对象之构造函数、实例对象、原型

一.面向对象首先有一个需求,点击按钮改变div的样式.按照常规的思维来写,我们可能是先获取到目标元素,然后给目标元素添加事件,在事件中书写div需要改变的样式属性.如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script type="text

面向对象中构造函数的小练习

//写一个Ticket类,有一个距离属性(本属性只读,在构造方法中赋值),不能为负数 //有一个价格属性,价格属性为只读,并且根据距离distance计算价格Price(1元/公里) //0--100公里 票价不打折 //101-200公里 票价总额9.5折 //201-300公里 票价总额9折 //301公里以上 票价总额8折 using System; using System.Collections.Generic; using System.Linq; using System.Text

js面向对象之构造函数

最简单的面向对象程序<script type="text/javascript"> var obj = new Object(); obj.qq = '1079161148'; obj.name = 'mr lan' obj.showName = function() { alert('my name =' + this.name) } obj.showQQ = function() { alert('my qq =' + this.qq) } obj.showName()

从认识面向对象到构造函数的标准写法

认识面向对象: /* 五点 1.发展历史 2.编程思想 面向过程的编程思想:只关心数学逻辑. 面向对象的编程思想:直接生活逻辑映射到我们的程序中. 3.语法 类 对象 类:具有一类相同特征的事物的抽象概念. 对象:具体的某一个实体,唯一的. 4.代码 5.结构 基本数据类型(单个数据) -> 数组(批量数据) -> 对象(既能够存储数据,又能够存储函数) */ 我们想创建两个对象,利用传统的对象方式: 1 <script> 2 /* 3 [注]面向对象的特点是继承.封装.多态. 4

PHP命名空间、面向对象以及构造函数

PHP 命名空间可以解决以下两类问题: 用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突. 为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性. 命名空间通过关键字namespace 来声明.如果一个文件中包含命名空间,它必须在其它所有代码之前声明命名空间. 单个文件中定义多个命名空间.建议使用下面的大括号形式的语法. 面向对象 对象的主要三个特性: 对象的行为:可以对 对象施加那些操作,开灯,关灯就是行为. 对象

.NET 基础 一步步 一幕幕[面向对象之构造函数、析构函数]

构造函数.析构函数 构造函数: 语法: //无参的构造函数 [访问修饰符] 函数名() :函数名必须与类名相同. //有参的构造函数 [访问修饰符] 函数名(参数列表):函数名必须与类名相同. 作用:帮助我们初始化对象(给对象的每个属性依次的赋值) 构造函数是一个特殊的方法: 1).构造函数没有返回值,连void也不能写. 2).构造函数的名称必须跟类名一样. 3).构造函数有无参和有参之分. 创建对象的时候会执行构造函数,构造函数是可以有重载的. *** 类当中会有一个默认的无参数的构造函数,