【Java基础】构造方法调用构造方法
从一个程序开始:
class dog
{
private String name;
private String color;
private int age; dog(String name)
//仅给name赋值
{
this.name=name;
}
dog(String name,String color)
//仅给name,color赋值
{
this.name=name;//但之前有过类似代码
this.color=color;
}
dog(String name,String color,int age)
//仅给name,color,age赋值
{
this.name=name;
this.color=color;//之前有过类似代码
this.age=age;
}
/*以上代码缺点,代码重复,
而且如果修改最初定义的参数(如name)时,
需要大量修改方法中的参数(3处修改),造成不便*/
} class ConstructerDemo
{
public static void main(String[] args)
{ }
}
此时我们可以使用构造方法来调用构造方法(形式为this(实参)),来解决上述问题,改进如下:
class dog
{
private String name;
private String color;
private int age; dog(String name)
//仅给name赋值
{
this.name=name;
}
dog(String name,String color)
//仅给name,color赋值
{
//this.name=name;//但之前有过类似代码
this(name);//改进后
this.color=color;
}
dog(String name,String color,int age)
//仅给name,color,age赋值
{
//this.name=name;
//this.color=color;//之前有过类似代码
this(name,color);//改进后
this.age=age;
}
/*以上代码缺点,代码重复,
而且如果修改最初定义的参数(如name)时,
需要大量修改方法中的参数(3处修改),造成不便*/
} class ConstructerDemo
{
public static void main(String[] args)
{ }
}
我们要注意的是,对this构造器的调用必须是构造器中的第一个语句。
也就是两点要注意,一是this构造器必须放在构造器中。二是必须为构造器中的第一个语句。
【Java基础】构造方法调用构造方法的更多相关文章
- 《Java基础——构造器(构造方法)》
Java基础--构造器(构造方法) 总结: 1.构造器名应与类名相同,且无返回值. 2."new 方法"的本质就是在调用构造器. 3.构造器的作用--初始化对象的值. ...
- Java基础练习2(构造方法)
1.以下关于面向对象概念的描述中,不正确的一项是() A.在构造方法中,this()只能出现在构造方法第一行位置 B.在构造方法中,super()只能出现在构造方法第一行位置 C.this()和sup ...
- Java基础_0304:构造方法
构造方法 如果要实例化新的对象,那么肯定需要使用关键字new来完成,但是除了new这个关键字之外,还有可能在对象实例化时为其进行一些初始化的准备操作,这个时候就需要构造方法的支持了 构造方法本身是一种 ...
- Java 基础 面向对象之构造方法和关键字
构造方法 构造方法简介 在开发中经常需要在创建对象的同时明确对象的属性值,比如员工入职公司就要明确他的姓名.年龄等属性信息. 那么,创建对象就要明确属性值,那怎么解决呢?也就是在创建对象的时候就要做的 ...
- java this关键字调用构造方法
一 this调用构造方法 构造方法之间的调用,可以通过this关键字来完成. 格式: this(参数列表); 构造方法的调用举例: class Person { // Person的成员属性 priv ...
- Java基础反射-调用类
Student类 package com.test.wang; import java.lang.reflect.Constructor; import java.lang.reflect.Field ...
- Java基础-递归调用
意义: 递归算法是一种直接或间接地调用自身的算法.在计算机编写程序中,递归算法对解决一大类问题是十分有效的,它往往使算法的描述简洁而且易于理解. 所以在工作中我们经常用递归 来进行一些算法操作 比如 ...
- 085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用
085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用 本文知识点:构造方法调用 说明:因为时间紧张,本人写博客过程中只是 ...
- 构造方法,重载,static,math类(java基础知识七)
1.构造方法概述和格式 * A:构造方法概述和作用 * 给对象的数据(属性)进行初始化 * B:构造方法格式特点 * a:方法名与类名相同(大小也要与类名一致) * b:没有返 ...
随机推荐
- [J2EE学习][post,get乱码处理]
post乱码 通过flitter过滤(原理待未来好好学习) <!-- post乱码过虑器 --> <filter> <filter-name>CharacterEn ...
- EffectiveC#17--装箱和拆箱的最小化
1.如下这段代码会经历装箱和拆箱.例如25会先装箱成object后传递给writeline方法(一次拷贝),在方法内部又 经历拆箱成int(第二次拷贝)后然后调用tostring(). Console ...
- node 安装express
环境:win7 64位旗舰版 1 安装nodejs 2 安装npm 3 安装express 重点介绍安装express,前提是你已经安装nodejs和npm了. 1 安装express npm ins ...
- 关于scrollTop
如下图
- 纯html网页重定向与跳转
javaScript 跳转 方法一: <script language="javascript"> window.location = "http:// ...
- html验证码
一.原理 1.在webservice服务端,新建一个Bitmap对象,将验证码字符串.干扰线和干扰点绘制到此Bitmap上——>转换为字节数组——>Base64字符串 2.<img ...
- OER 7451 in Load Indicator : Error Code = OSD-04500:指定了非法选项
alert 日志错误OER 7451 in Load Indicator : Error Code = OSD-04500:指定了非法选项 Sun Apr 22 11:15:51 2012 OER 7 ...
- 域名变更后获取cookie
有个朋友问我,域名更换后怎么获取原有域名下的cookie,当时第一反应是域名都不存在还怎么获取cookie. 后面想想似乎是可以的,使用新域名后可以保留原有域名,通过jsonp或iframe跨域获取原 ...
- Nginx的Upload上传模块
前段时间做一个项目,需要上传文件,差不多需要20M左右,普通用php处理会比较麻烦,经常超时,而且大量占用资源.于是搜索了下,决定用nginx的upload上传模块来处理. 你可以在这里:http:/ ...
- PHP函数十进制、二进制、八进制和十六进制转换
PHP函数篇详解十进制.二进制.八进制和十六进制互相转换函数说明,主要掌握各进制转换的方法,以应用于实际开发. 一,十进制(decimal system)转换函数说明 1,十进制转二进制 decbin ...