今天想要与大家分享一下有关于构造方法的知识!

构造方法的定义与作用

构造方法是一种特殊类型的方法。当一个对象被创建的时候,构造方法用来初始化对象,也就是说构造方法其实是一个名词而不是动词,像我刚刚开始接触的时候会把构造方法当成动词理解,就比较麻烦。构造方法和它所在类的名字相同,但构造方法没有返回值,因此不能再构造方法中使用return语句返回一个值。

构造方法的语法格式如下:

[访问修饰符]<类名>([参数列表]){
构造方法的语句体
}

  其中,修饰符可以为public,protect,private;参数列表为参数,可以是空的;构造方法的语句体也可以是空的。

构造方法在程序设计中非常有用,他可以为类的成员变量进行初始化。当一个类的实例对象刚产生时,这个类的构造方法就会被调用,可以在这个方法中加入要完成初始化工作的代码。无论是否自定义了构造方法,所有的类都有构造方法,因为Java自动提供了一个默认构造方法,这个默认构造方法没有参数,在其方法体中也没有任何的代码,它把所有成员初始化为0,除此之外什么都不做。然而一旦我们定义了自己的构造方法,默认构造方法就会失效。

以下是一个使用构造方法的例子:

//一个简单的构造方法
class Demo{
int x;
Demo(){//构造方法
x=1;
}
}

  如何调用构造方法来初始化一个对象:

public class MyDemo{
public static void main (String args[]){
Demo a = new Demo();
Demo b = new Demo();
System.out.println(a.x+" "+b.x);
}
}//运行结构为 :1 1

  以上的构造方法是无参构造方法,以下为大家编写一个有参数的构造方法:

class Demo {//一个简单的构造方法
int x;
Demo(int a){//有参数的构造方法
x=a;
}
}

  有参构造方法的调用类似无参构造方法:

public class MyDemo{
public static void main (String args[]){
Demo a = new Demo(5);
Demo b = new Demo(10);
System.out.println(a.x+" "+b.x);
}
}//运行结果为:5 10

  下面用一个比较具体的例子来为大家展示构造方法的使用:

class Employee{
private double employeeSalary = 2000;
public Employee() {//一个构造方法
System.out.print("该构造方法已被调用");
}
public void getSalary() {
System.out.println("职员的基本薪水为:"+employeeSalary);
}
public static class demo{
public static void main(String[] args){
Employee a1 = new Employee();
a1.getSalary();
Employee a2 = new Employee();
a2.getSalary();
}
}
}//运行结果为:构造方法被调用!职员的基本薪水为:2000.00
        构造方法被调用!职员的基本薪水为:2000.00

  通过我们上面列举的实例运行结果我们可以看出,每创建一个Employee对象,Employee()方法都会自动调用一次。这就是构造方法的作用与运行结果。

(11.13)Java小知识!的更多相关文章

  1. (11.20)Java小知识!

      经过一段时间的学习,我也终于来到了Java语言的核心篇,也就是对象与类的学习,今天想要和大家分享的是关于类的小知识点. 1.类的声明: 类可以看成创建Java对象的模板.类亦可以理解成Java一种 ...

  2. (11.06)Java小知识

    最近由于课程变化,学习计划也跟着改动,留给我写博客的时间也越来越少.今天晚上没有课,抽空过来图书馆写一写,许久不写感觉都有点陌生了! 今天要和大季家分享的衔接了上一篇博客,是关于方法的嵌套调用与递归调 ...

  3. (11.28)Java小知识!

    关于继承的继承机制:继承中最常使用的两个关键字是exteds和implements.今天主要和大家分享extends的知识点.这两个关键字的使用决定了一个对象和另一个对象是否是IS-A关系.同时我们还 ...

  4. java小知识,驼峰规则

    单词之间不以空格.连接号或者底线连结(例如不应写成:camel case.camel-case或camel_case形式).共有两种格式: 1.小驼峰式命名法(lower camel case): 第 ...

  5. Java小知识----POI事件模式读取Excel 2007

    一.知识背景 1.读取excel的方法选择问题 java中读excel中的时间,我们通常用POI去解析,在使用new HSSFWorkbook(NEW FileInputStream(excelFil ...

  6. Java小知识--length,length(),size()方法详细介绍

    Java中length,length(),size()区别 length属性:用于获取数组长度. eg: int ar[] = new int{1,2,3} /** * 数组用length属性取得长度 ...

  7. JAVA小知识

    eclipse是日蚀的意思,eclipse是IBM公司的,当年和SUN公司的java竞争,sun的意思是太阳,所以你明白了? Java的起名是 java(爪哇)咖啡,java原意是爪哇的意思,当初起名 ...

  8. 每天学点Java小知识【1】

    一 Java标识符和关键字 1.标识符 作用:用来标识类名.变量名.方法名.类型名.数组名.文件名的有效字符序列. 组成规则:由字母.下划线.美元符号和数字组成,且第一个字符不能是数字字符.注意:标识 ...

  9. (10.23)Java小知识!

    ---恢复内容开始--- 方法的定义: 一般情况下,定义一个方法包含以下语法: 修饰符 返回值类型 方法名 (参数类型 参数名 , ...){ ... 方法体 ... return 返回值; } 修饰 ...

随机推荐

  1. Number Complement

    Given a positive integer, output its complement number. The complement strategy is to flip the bits ...

  2. python之路第五篇之递归(进阶篇:续:经典例子剖析)

    递归 在函数内部,可以调用其他函数; 如果一个函数在内部调用自身本身,这个函数就是递归函数. 例如,我们来计算阶乘: n! = 1 x 2 x 3 x ... x n, 用函数f1(n)表示,可以看出 ...

  3. HDU1257 最少拦截系统 (贪心+STL+二分)

    第一次在博客园写博客,好紧张 .博客搬家居然很多代码成了乱码,欲哭无泪,妈咪. 开学东西太多了吧,没时间写备注,有点时候只能贴个代码,以后有时间再加备注吧,只贴代码不是好习惯. 咦,贪心怎么写,我只会 ...

  4. 在SQL中用正则表达式替换html标签(2)

    由于数据库的一个表字段中多包含html标签,现在需要修改数据库的字段把html标签都替换掉.当然我可以通过写一个程序去修改,那毕竟有点麻烦.直接在查询分析器中执行,但是MS SQL Server并没有 ...

  5. C#钩子类 几乎捕获键盘鼠标所有事件

    using System; using System.Text; using System.Runtime.InteropServices; using System.Reflection; usin ...

  6. 搭建阿里云 centos mysql tomcat jdk

    [toc] 阿里云使用centos 登录 http://www.aliyun.com/ 点击登录 进入控制 https://home.console.aliyun.com/ 云服务器 运行中 把ip输 ...

  7. 企业微信开发之发放企业红包(C#)

    一.企业微信API 地址:http://work.weixin.qq.com/api/doc#11543 二.参数说明 1.发送企业红包 请求方式:POST(HTTPS)请求地址:https://ap ...

  8. 【转】 bio 与块设备驱动

    原文地址: bio 与块设备驱动      系统中能够随机访问固定大小数据片(chunk)的设备被称作块设备,这些数据片就称作块.块设备文件都是以安装文件系统的方式使用,此也是块设备通常的访问方式.块 ...

  9. [extjs(1)]MyEclipse2014安装ext4插件Spket

    1 解压好的Spket目录如下 2  建议以link方式安装Spket到MyEclipse中 找到MyEclipse的安装目录 如 3  在MyEclipse 的根目录新建一个目录extjs 当然也可 ...

  10. .NET程序集引用COM组件MSScriptControl所遇到的问题

    问题描述:为了在C#中执行js脚本,在一个目标平台编译为Any Cpu的.NET程序集中引用了MSScriptControl组件,在winform程序中,调用这个程序集中的执行js的方法,没有任何问题 ...