import java.util.Scanner;
public class CheckSudokuSolution {
public static int[][] readASolution(){
Scanner input = new Scanner(System.in);
System.out.println("Enter a Sudoku puzzzle solution: ");
int[][] grid = new int[9][9];
for(int i = 0;i <9;i++) {
for(int j = 0;j <9;j++) {
grid[i][j] = input.nextInt();
}
}
input.close();
return grid;
}
public static boolean isValid(int[][] grid) {
for(int i = 0;i <9;i++) {
for(int j = 0;j <9;j++) {
if(grid[i][j] <1 ||grid[i][j]>9
||!isValid(i, j, grid)) {
return false;
}
}
}
return true;
}
public static boolean isValid(int i, int j, int[][] grid) {
for(int column = 0;column <9;column++) {
if(column != j &&grid[i][column] == grid[i][j]) {
return false;
}
}
for(int row = 0;row <9;row++) {
if(row != i &&grid[row][j] == grid[i][j]) {
return false;
}
}
for(int row = (i /3) *3;row <(i /3) *3 +3;row++) {
for(int col = (i /3) *3;col <(i /3) *3 +3;col++) {
if(row != i &&col != j &&grid[row][col] == grid[i][j] ) {
return false;
}
}
}
return true;
}
}
这个叫做方法重载,就是方法名相同参数不同。
因为参数列表不同哦
发生在两个有继承关系的类中,且发生在子类里边(子类认为父类的方法不适用在子类里边,对父类的方法进行重写)
子类重写的方法的权限修饰符要大于等于父类中方法的权限修饰符
重写方法的返回类型在JDk5.0以前需要一模一样,在JDK5.0以后支持斜变类型
即支持返回其父类的子类类型
子类的异常处理部分要小于等于父类的异常类型
@Override注解,表示下边被注解的方法必须要重写父类的某个方法
- 方法重载的条件
- 必须发生在同一个类体
- 方法名需要完全相同
- 方法的参数需要不同
- 参数类型不同
- 参数个数不同
- 参数顺序不同
方法重载对返回值类型和修饰符没有要求
方法重载的作用是为了满足用户的不同需求
区分方法的重写和重载
二者的概念:
重写和重载的具体规则
重载:不表现为多态性
重写表现为多态性