面向对象要点(构造函数)
每创建一个类的实例都去初始化它的所有变量是乏味的。如果一个对象在被创建时就完成了所有的初始工作,将是简单的和简洁的。因此,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编译器会提供一个默认的构造函数.此默认构造函数是不带参数的.而一般方法不存在这一特点
转载于:https://www.cnblogs.com/mmlovejj/p/5043616.html
面向对象要点(构造函数)相关推荐
- python在删除对象时会自动调用析构函数_Python面向对象程序设计构造函数和析构函数用法分析...
本文实例讲述了Python面向对象程序设计构造函数和析构函数用法.分享给大家供大家参考,具体如下: 构造函数和析构函数 1.构造方法的使用 很多类都倾向于将对象创建为有初始化状态.因此类可以定义一个名 ...
- JavaScript面向对象——理解构造函数继承(类继承)
JavaScript面向对象--理解构造函数继承(类继承) 构造函数式继承(类继承) function SuperClass(id) {// 引用类型公有属性this.books = ['JavaSc ...
- 详解面向对象、构造函数、原型与原型链
详解面向对象.构造函数.原型与原型链 为了帮助大家能够更加直观的学习和了解面向对象,我会用尽量简单易懂的描述来展示面向对象的相关知识.并且也准备了一些实用的例子帮助大家更加快速的掌握面向对象的真谛. ...
- JavaScript面向对象之构造函数
下面是对JavaScript面向对象中构造函数的整理,希望可以帮助到有需要的小伙伴 JavaScript面向对象之构造函数 构造函数可以帮你构造出你喜欢的任何一个对象,给构造函数属性和方法,构造函数都 ...
- 面向对象中构造函数的小练习
//写一个Ticket类,有一个距离属性(本属性只读,在构造方法中赋值),不能为负数//有一个价格属性,价格属性为只读,并且根据距离distance计算价格Price(1元/公里)//0--100公里 ...
- Java工厂构造函数参数,javascript 面向对象之构造函数、工厂方式、字面量
什么是面向对象编程 面向对象的英文全称:Object Oriented Programming , 简称OOP 首先我们要先了解面向过程的编程思想, 就是代码从上到下都没有封装的意思,某写代码裸露在外 ...
- java面向对象设计_Java面向对象设计 构造函数设计
在Javascript面向对象设计一--工厂模式 中介绍了使用CreateEmployee()函数创建员工类.ECMAScript中的构造函数可以用来创建特定类型的对象,如Object和Array这样 ...
- js_高级_对象、面向对象、构造函数、实例对象、原型、原型链
1.什么是对象 汽车不是对象是是一类事物,一辆汽车是对象. 2.什么是面向对象 3.面向对象的特点 案例来理解 面向过程 和 面向对象---打印出学生的成绩表 面向过程:如何做这件事情 ,把事情拆成 ...
- C#温故而知新学习系列之面向对象编程—构造函数(七)
构造函数 构造函数又叫构造方法,其实就是对类进行初始化,构造函数与类同名,无返回值,也不需要void,在new时候调用 所有的类都有构造函数,如果你不写构造函数的话,系统默认生成空的构造函数,若你有自 ...
最新文章
- mysql群集配置_CentOS7 - 建立一个MySQL集群
- 深度学习及TensorFlow简介
- webpack基本打包配置流程
- kafka php 安装配置,kafka安装及Kafka-PHP扩展的使用,kafkakafka-php扩展_PHP教程
- 从零开始学习python编程-从零开始学python编程一:首行代码
- 【转】OAuth的改变
- ELK 架构之 Elasticsearch 和 Kibana 安装配置
- 父子进程共享内存通信的三种方法
- 转载防火墙和防毒墙的区别
- 爬取12306火车票信息
- 通俗易懂的Bootstrap视频课程(适合初学者的教程)-汤小洋-专题视频课程
- 想做数据分析,都需要学些什么?
- c语言浮点数常量,C 浮点常量
- 关于移植人脸识别功能到linux开发板
- 从浏览器直接转跳到APP具体页面---(魔窗)MagicWindow使用教程
- 玩转华为ENSP模拟器系列 | 配置设备使用SNMPv2c与网管通信示例
- 那些年,我们关注过的放大电路设计要点
- 一文入门 Spring Boot
- 为什么总显示连接服务器失败怎么回事,为什么总是出现"与总服务器连接失败"的字样 – 手机爱问...
- 大家不用买无线路由器了也可以让手机上WIFI
热门文章
- python计算排队时间_python计算排队时间_Python(pdb)-排队执行命令
- 无法从服务器获得响应,什么是java.io.EOFException的,消息:无法从服务器读取响应。 预期读4个字节,...
- 高级短链接工具+汉化版语言包premium-url-shortener-v5.9.8完美修复开心版QW提示跳转
- 一文吃透Json解析工具类合集(FastJson、Jackson、Gson)
- css 多栏文字流 css two columns text flow
- Linux流量监控工具 – iftop
- ACM模式数组构建二叉树
- 斗地主AI算法——第六章の牌型判断
- 博弈——巴什博弈(hdu1846,2188,2897)
- linux网络配置命令 ifconfig 、route 、ip 、ip route