`
xingdian119
  • 浏览: 11697 次
  • 性别: Icon_minigender_1
  • 来自: 泰安
最近访客 更多访客>>
社区版块
存档分类
最新评论

为SCJP认证考试而努力-4

阅读更多
    写博客这几天终于有朋友回帖了,心里高兴。下面学习默认的构造方法、方法的重载和覆写,以下代码可以直接在MyEclipse中运行,到最后我会把中间写的所有代码打包放出来,敬请关注。
package operation;
class ConsBase {
	ConsBase(int i) {
		System.out.println("single int constructor");
	}
	/**
	 * 如果你没有显式定义任何构造方法,编译器会插入一个“后台”的不可见的无参数的构造方法。
	 * 如果你自己创建了构造方法,Java	就不支持默认的无参数的构造方法了。
	 * 可以通过在Base 类中创建一个“什么都不干”的零参数构造方法来修复这个错误。
	 */
	ConsBase() {// 构造器有和类同样的名字并且没有返回值
		System.out.println("ConsBase");
		// 当类的实例被创建时打印字符串“ConsBase”:
	}
	public void aBaseMethod(){
		System.out.println("Base.amethod");
	}
}
/**
 * @author 木炭
 * 程序最后输出:ConsBase 换行 Cons
 */
public class Cons extends ConsBase {
	/**
	 * @param args
	 */
	public static void main(String args[]) {
		// ConsBase c = new ConsBase();
		Cons s = new Cons();
	}
	Cons() {
		System.out.println("Cons");
	}
	
	/**
	 * @param iOver
	 * 如果一个类中的两个或者多个方法有同样的名字,就被称为方法重载。
	 * 你可以在一个类中有两个同样名字的方法,但是他们必须有不同的参数类型和顺序。
	 * 返回值的类型不能帮助区分两个方法。下面第二个参数相同的方法将导致编译时错误。
	 */
	public void amethod(int iOver){
	System.out.println("Cons.amethod");
	}
/*	public int amethod(int iOver){
	System.out.println("Cons int return method");
	return 0;
	}*/
	//正确的重构
	public int amethod(String iOver){
		System.out.println("Cons int return method");
		return 0;
	}
	//你可以在一个子类中重载一个方法,所需要的就是新方法有不同的参数顺序和类型。
	//static 方法不能被重写。
	public void aBaseMethod(){
		System.out.println("重写aBaseMethod成功");
	}
	
}

 

问题 ) 给定下面的类定义
class Base{
Base(int i){}
}
class DefCon extends Base{
DefCon(int i){
//XX}
}
如果将标记//XX 的地方替换为下面的行,哪一行是独立合法的?
1) super();
2) this();
3) this(99);
4)super(99);
答案 4) super(99);
由于类Base 定义了一个构造方法,编译器将不会插入默认的0 参数的构造方法。因此,super()
的调用会引起一个错误。一个this()调用试着在当前类中调用一个不存在的0 参数构造方法,
this(99)调用会引起一个循环引用并将引起一个编译时错误。
问题 )下面的哪一句陈述是正确的?
1) The default constructor has a return type of void
2) The default constructor takes a parameter of void
3) The default constructor takes no parameters
4) The default constructor is not created if the class has any constructors of its own.
答案
3) The default constructor takes no parameters
4) The default constructor is not created if the class has any constructors of its own.
选项1 相当明显,因为构造方法不会有返回类型。选项2 不容易确定,Java 没有为方法或构
造方法提供void 类型。
问题 )给定下面的类定义
public class Upton{
  public static void main(String argv[]){
  }
  public void amethod(int i){}
  //Here
}
下面哪一个在替换//Here 后是合法的?
1) public int amethod(int z){}
2) public int amethod(int i,int j){return 99;}
3) protected void amethod(long l){ }
4) private void anothermethod(){}
答案
2) public int amethod(int i, int j) {return 99;}
3) protected void amethod (long l){}
4) private void anothermethod(){}
选项1 由于两个原因不会被编译。第一个相当明显,因为它要求返回一个integer。
另一个是试着直接在类内部重新定义一个方法。把参数的名字从i 换成z 是无效的,类型没有变。
并且一个方法不能在同一个类里重写。
问题 )给定下面的类定义
public class ShrubHill{
public void foregate(String sName){}
//Here
}
下面的哪一个方法可以合法的直接替换//Here?
1) public int foregate(String sName){}
2) public void foregate(StringBuffer sName){}
3) public void foreGate(String sName){}
4) private void foregate(String sType){}
答案
2) public void foregate(StringBuffer sName){}
3) public void foreGate(String sName){}
选项1 是试着定义一个方法两次,有一个int 返回值并不能帮助将它与存在的foregate 方法相区分。
而像选项4 那样改变方法的参数名,也不能与存在的方法相区分。
选项2里的foreGate 方法是与foregate不同的方法。
0
1
分享到:
评论

相关推荐

    SCJP考试资源,光盘,考试资料

    SCJP(Sun Certified Programmer for the Java 2 Platform, Standard Edition)是Oracle公司为Java SE平台提供的一个认证考试,旨在验证考生对于Java编程语言的基础知识和理解能力。这个认证对于那些想要提升自己...

    OCJP认证-3期(PX017) PX122010101018_OCJP考试大纲 -.doc

    OCJP(Oracle Certified Java Programmer)认证,也称为Sun时代的SCJP,是Oracle公司对全球Java开发者的技术能力进行验证的一种权威认证。此认证在全球IT行业内享有高度认可,是Java程序员技能评估的重要标准。OCJP...

    JAVA程序设计-3期(KC005) KC 005 040000 001-《Java程序设计》整体设计.doc

    《Java程序设计》是一门专为...通过本课程的学习,学生将具备参加Java程序员认证(SCJP)和全国计算机等级考试(Java)的资格。课程内容设计以任务驱动,鼓励学生在实践中学习和提升,形成系统且全面的Java编程技能。

    JAVA程序设计-3期(KC005) KC 005 030000 001-《Java程序设计》课程标准.doc

    其他目标涉及相关的专业认证考试,如SCJP和全国计算机等级考试(Java)。 课程内容分为5个单元,共计96个课时。每个单元都围绕特定主题展开,例如Java语言程序设计基础涵盖了Java特点、Eclipse集成环境的使用、程序...

    Java程序设计习题集下载

    本习题集收集了Java程序编写常见问题,并以习题形式总结和归纳Java程序设计知识要点,同时兼顾了SCJP(Sun公司 Java程序员认证考试),从而降低学习难度,减少编写程序出现错误的枘地,也便于掌握各个知识要点或测试...

    2022年关于JAVA工程求职信3篇.docx

    通过自我学习以及参加TarenaC+E软件工程师实训课程,我掌握了Oracle公司的SCJP认证所需的核心Java技术。我熟悉JDBC用于数据库连接,能熟练运用SSH框架进行Web开发,并且对Android平台也有一定的了解。在项目实践中,...

    Java程序设计(新) 《JAVA程序设计》_课程标准.doc

    此外,课程还为学生提供了参与相关职业资格认证考试的机会,进一步提升其就业竞争力。总之,《Java程序设计》是一门全方位、实践性强的课程,对于软件技术专业的学生来说,是必不可少的专业基石。

    Java程序设计(新) 《JAVA程序设计》_整体设计.doc

    通过本课程,学生可以准备Java程序员认证(SCJP)和全国计算机等级考试(Java)。 课程内容设计: 课程内容以六个单元呈现,每个单元包含多个任务,总共31个任务,覆盖86个课时。任务驱动的方式使得学习内容...

Global site tag (gtag.js) - Google Analytics