Java复习第二天---JavaSE基础(三)

2014-11-23 19:07:45 · 作者: · 浏览: 68
n radius; } public void setRadius(double radius){ this.radius=radius; } public double findArea(){ double area= 3.14*this.getRadius()*this.getRadius(); return area; } } Cylinder.java package zuoye; public class Cylinder extends Circle{ private double length; public Cylinder(double radius,double length){ setRadius(radius); this.length=length; } public void Cylinder(double length){ this.length=length; } public double findArea(){ double area=(2*3.14*getRadius()*getRadius())+(3.14*2*getRadius()*length); return area; } public double findVolume(){ double Volume = super.findArea()*length; return Volume; } } TestCylinder.java package zuoye; public class TestCylinder { public static void main(String[] args) { Cylinder c =new Cylinder(2, 3); double area = c.findArea(); double volume = c.findVolume(); System.out.println("圆柱的表面积为"+area); System.out.println("圆柱的体积为"+volume); } }


【3】实现单子模式非常重要。

package danzi;

public class single {
	private single(){}
	
	
	private static single Instance = new single();
	public static single getInstance(){
		return Instance;
	}
}
package danzi;

public class singleTest {
	public static void main(String[] args) {
		single s1 = single.getInstance();
		single s2 = single.getInstance();
		System.out.println(s1==s2);
	}

}


任务三、简答题

【1】什么是方法的重写?【用程序代码进行测试然后截图附后】

答:重写Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的定义方法,这相当于把父类中定义的那个完全相同的方法给覆盖了,这也是面向对象编程的多态性的一种表现。

重写的要求:

①子类方法对父类方法进行重写,又叫覆盖

②方法名相同

③参数列表相同

④子类方法返回值类型不能比父类方法返回值类型更大

⑤子类方法抛出的编译时异常不能比父类方法范围更大,运行时异常无所谓

⑥子类方法的访问权限不能比父类方法更严格

【2】什么是方法的重载?【用程序代码进行测试然后截图附后】

答:重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)。

重载的要求:

①在同一个类中

②相同方法名

③不同参数列表

【3】如何比较两个字符串?为什么要这样?

最好用equals()函数来比较,因为如果单纯用==比较的话,只适用于String s1=”xxx” 和String s2=”xxx”定义的比较,如果是String t1=new String(“xxx”),这种定义的比较就不可以了,因为前一种类型不管怎么定义,他的地址都是不变的,所以肯定是相等的,但是new String(“xxx”)定义的话就改变了他的地址,所以就不一样了,所以==比较不保险,最好用equals()函数比较。更全面。