1、设计数学公式类,实现不同图形的求周长、面积的方法
2、import java.util.Scanner;
public class PrintGeometry {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入菱形边长:");
int a = sc.nextInt();
printRhombus(a - 1);
}
public static void printRhombus(int n) {
for (int i = 0; i <= 2 * n; i++) {
for (int j = 0; j <= 2 * n; j++) {
if (j == i + n || j == -i + n || j == i - n || j == -i + 3 * n) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println();
}
}
}
3、重写方法的规则:
1、参数列表必须完全与被重写的方法相同;
2、返回的类型必须一直与被重写的方法的返回类型相同;
3、访问修饰符的限制一定要大于被重写方法的访问修饰符;
4、重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常。
重载的规则:
1必须具有不同的参数列表;
2可以有不同的返回类型,只要参数列表不同就可;
3、可以有不同的访问修饰符;
4、可以抛出不同的异常。
4、相同点:
编译之后都能生成字节码文件(.class文件)
不能创建对象
可以声明为引用
不同点:
接口中所有的属性都是公开静态常量,默认被public static final修饰;抽象类没有要求
接口中所有的方法都是公开抽象方法,默认被public abstract修饰;抽象类没有要求
接口中没有构造方法,静态、动态代码块;抽象类可以存在
接口是多继承,抽象类是单继承。
5、public class StudentDao {
private String name;
private char sex;
private int age;
@Override
public String toString() {
return "StudentDao [name=" + name + ", sex=" + sex + ", age=" + age + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + age;
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result + sex;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
StudentDao other = (StudentDao) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (sex != other.sex)
return false;
return true;
}
}