Java中有关构造函数的一道笔试题解析

Java中有关构造函数的一道笔试题解析

1、具体题目如下

下列说法正确的有()

A. class中的constructor不可省略

B. constructor必须与class同名,但方法不能与class同名

C. constructor在一个对象被new时执行

D.一个class只能定义一个constructor

2、解析说明

(1)class中的构造函数是可以省略的

/**
 * @Title:User.java
 * @Package:com.you.user.model
 * @Description:
 * @author:Youhaidong(游海东)
 * @date:2014-7-23 下午10:10:29
 * @version V1.0
 */
package com.you.user.model;

/**
 * 类功能说明
 * 类修改者 修改日期
 * 修改说明
 * <p>Title:User.java</p>
 * <p>Description:游海东个人开发</p>
 * <p>Copyright:Copyright(c)2013</p>
 * @author:游海东
 * @date:2014-7-23 下午10:10:29
 * @version V1.0
 */
public class User
{
	/**
	 * 姓名
	 */
    private String name;

    /**
	 * 密码
	 */
    private String password;

	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}

	/**
	 * @param name the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * @return the password
	 */
	public String getPassword() {
		return password;
	}

	/**
	 * @param password the password to set
	 */
	public void setPassword(String password) {
		this.password = password;
	}

}

(2)构造函数跟class同名,方法也可以跟class同名

/**
 * @Title:User.java
 * @Package:com.you.user.model
 * @Description:
 * @author:Youhaidong(游海东)
 * @date:2014-7-23 下午10:10:29
 * @version V1.0
 */
package com.you.user.model;

/**
 * 类功能说明
 * 类修改者 修改日期
 * 修改说明
 * <p>Title:User.java</p>
 * <p>Description:游海东个人开发</p>
 * <p>Copyright:Copyright(c)2013</p>
 * @author:游海东
 * @date:2014-7-23 下午10:10:29
 * @version V1.0
 */
public class User
{
	/**
	 * 姓名
	 */
    private String name;

    /**
	 * 密码
	 */
    private String password;

	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}

	/**
	 * @param name the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * @return the password
	 */
	public String getPassword() {
		return password;
	}

	/**
	 * @param password the password to set
	 */
	public void setPassword(String password) {
		this.password = password;
	}

	public void User()
	{

	}

}

 只不过Java规范中方法名第一个字母小写,不赞成这样写法,但是还是存在方法和class同名

(3)一个类中可以定义多个构造函数

/**
 * @Title:User.java
 * @Package:com.you.user.model
 * @Description:
 * @author:Youhaidong(游海东)
 * @date:2014-7-23 下午10:10:29
 * @version V1.0
 */
package com.you.user.model;

/**
 * 类功能说明
 * 类修改者 修改日期
 * 修改说明
 * <p>Title:User.java</p>
 * <p>Description:游海东个人开发</p>
 * <p>Copyright:Copyright(c)2013</p>
 * @author:游海东
 * @date:2014-7-23 下午10:10:29
 * @version V1.0
 */
public class User
{
	/**
	 * 姓名
	 */
    private String name;

    /**
	 * 密码
	 */
    private String password;

	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}

	/**
	 * @param name the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * @return the password
	 */
	public String getPassword() {
		return password;
	}

	/**
	 * @param password the password to set
	 */
	public void setPassword(String password) {
		this.password = password;
	}

	public void User()
	{

	}

	/**
	 * <p>Title:</p>
	 * <p>Description:有参构造函数</p>
	 * @param name
	 * @param password
	 */
	public User(String name, String password) {
		super();
		this.name = name;
		this.password = password;
	}

	/**
	 * <p>Title:</p>
	 * <p>Description:无参构造函数</p>
	 */
	public User() {
		super();
	}

}

    通过排除法得知,答案是C

时间: 2024-10-29 02:54:48

Java中有关构造函数的一道笔试题解析的相关文章

Thinking in java中关于Exception的一道面试题.

今天看到Thinking in Java中一个关于Exception的例子:最后看到有一篇总结的比较好的文章, 这里拿来记录下, 文章地址是:http://blog.csdn.net/salerzhang/article/details/46581457  感谢原作者. 1 class Annoyance extends Exception {} 2 class Sneeze extends Annoyance {} 3 4 class Human { 5 6 public static voi

一道笔试题来理顺Java中的值传递和引用传递

前段时间参加了一场面试,其中有一道引用传递的题,因为当时并没有考虑清楚所以做错了. 现在来复盘一下,题目如下: private static void change(StringBuffer str11, StringBuffer str12) { str12 = str11; str11 = new StringBuffer("new world"); str12.append("new world");} public static void main(Stri

java笔试题解析

1.数组乱序 天天搞排序,今天遇到一道乱序的问题居然无从下手,知道random,然后想了很复杂的if条件判断. 其实,只要在数组里面依次拿出一个数,然后产生数组长度范围内的一个数作为下标,然后互换即可! public class RandomNumber { public static void main(String[] args) { int change = 6; int[] sequence = new int[change]; for (int i = 0; i < change; i

0810------笔试题----------腾讯2012年的一道笔试题

1.题目要求 a)b[i] = a[0] *a[1] *a[2]*….a[n-1]/ a[i],求出数组b: b)要求不能用除法,除循环控制变量以外,不许额外申请其余变量,时间复杂度为O(n),空间复杂度为O(1). 2.程序思路 a)假设 N = 5,那么 b[0] =      a[1]*a[2]*a[3]*a[4];            b[1] = a[0]*     a[2]*a[3]*a[4];            b[2] = a[0]*a[1]*     a[3]*a[4];

好玩的一道笔试题

/*实现函数: void f(int a, int b, int c) 编码中不允许出现燃和if,switch,for,while之类的关键词以及"?:"表达式,并要求: a=1时,打印b+c的值: a=2时,打印b-c的值: a=3时,打印b*c的值: a=4时,打印b/c的值. */ 下面是我的解答,哈哈: #include <iostream> int cal(int a,int b, int c){ int res = 0; (!(a^1) && (

给定一个数值,输出符合中国人习惯的读法--记一道笔试题

题目:给定一个数字,最大小于一万亿,输出符合中国人习惯的读法,例如: a.12输出:十二 b.102输出:一百零二 c.1002输出:一千零二 d.112输出:一百十二 e.10112输出:一万零一百十二 f.120000000:一亿二千万 g.11021002:一千一百零二万一千零二 h.11020102:一千一百零二万零一百零二 i.1000001:一百万零一 j.1000000001:十亿零一 嗯,一道笔试题,解的很没有节操,没有太好的思路,只能尽力抽取翻译过程中的共有代码,尽量写的不那么

关于阿里的一道笔试题分析

其题目如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #pragma pack(2) class A { public:     int i;     union U     {         char buff[13];         int i;     }u;     void foo() {    }     typedef char* (*f)(void*);     enum{red, green, blue} color; }a; class A

送上今年微软的一道笔试题

这里送上一道微软的笔试题,具体题目如下: Time Limit: 10000msCase Time Limit: 1000msMemory Limit: 256MB Description Consider a string set that each of them consists of {0, 1} only. All strings in the set have the same number of 0s and 1s. Write a program to find and outp

Java中的构造函数和重载

一.Java中的构造函数 构造函数是对象被创建时初始化对象的成员方法,它具有和它所在的类完全一样的名字.构造函数只能有入口参数,没有返回类型,因为一个类的构造方法的返回类就是类本身.构造函数定义后,创建对象时就会自动调用它,对新创建的对象分配内存空间和初始化.在 Java 中,构造函数也可以重载,当创建一个对象时, JVM 会自动根据当前对方法的调用形式在类的定义中匹配形式符合的构造方法,匹配成功后执行该构造方法. eg: public Class Dog { private int age: