今天下午参加了公司的一个小型技术测试,主要内容都是一些java的基础知识,选择题,判断题,几道编程填空题。不知道怎么衡量这套题的难度,因为我觉得这些题更偏概念性,考的东西感觉都学过,但是答案都叫不准,只能说自己基础还是比较差。今天上午看了一些javaSE的东西,看的最多的就是多态封装那块。也顺便看了下String类和Object类。
列出一些String中的常用方法。
从网上看到的一个关于继承和多态的小程序。
设计一个形状类Shape,方法:求周长和面积
形状类的子类:Rect(矩形),Circle(圆形)
Rect类的子类:Square(正方形)
不同的子类会有不同的计算周长和面积的方法
创建三个不同的形状对象,放在Shape类型的数组里,分别打印出每个对象的周长和面积
Test类
public class Test{
public static void main(String[] args){
Shape[] s=new Shape[3];
s[0]=new Rect(6,3);
s[1]=new Square(6);
s[2]=new Circle(5);
for(int i=0;i<s.length;i++){
System.out.println("周长:"+s[i].zhouChang());
System.out.println("面积:"+s[i].mianJi());
}
}
}
设计一个Shape类,并生成两个方法
public class Shape{
double zhouChang(){
return 0.0;
}
double mianJi(){
return 0.0;
}
}
矩形类继承Shape类
public class Rect extends Shape{
private double chang;
private double kuan;
public Rect(){
}
public Rect(double chang,double kuan){
this.chang=chang;
this.kuan=kuan;
}
public double zhouChang(){
return (chang+kuan)*2;
}
public double mianJi(){
return chang*kuan;
}
}
圆形类继承Shape类
public class Circle extends Shape{
private double r;
public Circle(){
}
public Circle(double r){
this.r=r;
}
public double zhouChang(){
return 2*3.1415926*r;
}
public double mianJi(){
return 3.1415926*r*r;
}
}
正方形类继承Rect类
public class Square extends Rect{
private double bianChang;
public Square(){
}
public Square(double bianChang){
super();
this.bianChang=bianChang;
}
public double zhouChang(){
return bianChang*4;
}
public double mianJi(){
return bianChang*bianChang;
}
}