手记概念——加深概念理解简单敲一敲
#1 给定一个数组,返回数组第三大的数
import java.util.Arrays;
import java.util.Scanner;
public class ThirdMaxNum {
public static void main(String[] args) {
int n=8;
int array[]=new int[n];
Scanner arr=new Scanner(System.in);
System.out.println("请输入8个数字(用空格隔开):");//从键盘接受数组内容
for(int i=0;i<array.length ;i++) {
array[i]=arr.nextInt();
}
/* 利用冒泡排序对数组进行排序,当然也可以用快速排序等其他排序方法
int temp;
for(int a=0;a<array.length;a++) {
for(int j=a+1;j<array.length ;j++) {
if(array[a]<array[j])
{
temp=array[a];
array[a]=array[j];
array[j]=temp;
}
}
}*/
Arrays.sort(array);//也可用java提供的排序函数进行排序,但默认是升序
System.out.println("数组中第三大的元素为:");
System.out.println(array[5]);
}
}
#2 顺时针90度旋转一个存储图像信息的二维数组
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class RotateMatrix {
public static void main(String[] args) {
Scanner Matrix1=new Scanner(System.in);
int[][] arrays=new int[3][]; //用于存放输入的三行数据,每行数据都存入一个数组
System.out .println("请输入三行三列的数组元素:");
for(int i=0;i<arrays.length;i++){
String str=Matrix1.nextLine();
String[] strArray=str.split(",");
for(int j=0;j<strArray.length;j++){
arrays[i]=new int[strArray.length];
arrays[i][j]=Integer.parseInt(strArray[j]);
System.out.print(arrays[i][j]+",");
}
//旋转数组
Object a;
int len = Matrix1.length-1;
int[][] v = new int[3][3];//存放旋转后的新数组
int y = 0;//存放数组的二维数据的指针
for(int k = len;k >= 0;k--){
int[] b = a[k];
for(int n = 0; n < b.length;n++){
v[n][y]=b[n];
}
++y;
}
#3 创建一个啮齿动物类 Rodent:老鼠 mouse,鼹鼠 gerbil, 大颊鼠hamster 这样的层次继承结构,在基类中提供对啮齿动物的通用方法,在子类中根据特定啮齿动物类型重载这些方法,以便执行不同的行为,创建一个Rodent 数组填充不同啮齿动物类型,然后调用相应子类方法
public abstract class Rodent {
public abstract void name();
public abstract void predator();
public abstract void eat();
public abstract void sound();
public abstract void area();
public void footnum() {
System.out.println("四只脚");
}
public static void main(String[] args) {
Rodent[] x1= {new Mouse(),new Gerbil(),new Hamster()};
for(int i=0;i<x1.length;i++) {
x1[i].name();
x1[i].predator();
x1[i].sound();
x1[i].footnum();
x1[i].eat();
x1[i].area();
System.out.println("######");
}
}
}
class Mouse extends Rodent{
public void name() {
System.out.println("老鼠");
}
public void predator() {
System.out.println("猫");
}
public void eat() {
System.out.println("夜间偷吃粮食");
}
public void sound() {
System.out.println("唧唧");
}
public void area() {
System.out.println("全球各地");
}
}
class Gerbil extends Rodent{
public void name() {
System.out.println("鼹鼠");
}
public void predator() {
System.out.println("狐狸");
}
public void eat() {
System.out.println("昆虫等");
}
public void sound() {
System.out.println("啪嗒");
}
public void area() {
System.out.println("亚洲美洲等");
}
}
class Hamster extends Rodent{
public void name() {
System.out.println("大颊鼠");
}
public void predator() {
System.out.println("猫头鹰");
}
public void eat() {
System.out.println("水果坚果");
}
public void sound() {
System.out.println("吱吱");
}
public void area() {
System.out.println("叙利亚以色列等地");
}
}
#4 异常学习简单练习代码
*1 编写一个类,在main中try 里抛出一个exception对象,在catch 子句中捕获异常对象,并添加一个finally子句打印一条信息证明finally子句得到执行
import java.util.Scanner;
public class ExceptionTest {
public static void main(String[] args) {
System.out.println("请输入一个自然数:");
Scanner sc =new Scanner(System.in );
int a=sc.nextInt();
try {
if(a%2==0)
throw new ExceptionOne();
else
System.out.println ("NotExistException");
}catch(ExceptionOne errorone) {
System.out.println ("ExceptionOne");
}finally {
System.out.println("In finally clause");
if(a%5==0)
return;
}
}
}
2 定义一个对象的引用并初始化为null,尝试用此引用调用方法,把这个调用放在try-catch子句里以捕获异常*
public class ExceptionTest02 {
class JavaLearn{
private String way1 = "理论学习";
private String way2 = "动手实践";
void LearnMethods() {
System.out.println("学习方法为:"+way1+way2);
}
}
public static void main(String[] args) {
JavaLearn leran1=null;
try {
leran1.LearnMethods();
}catch(NullPointerException e) {
System.out.println("出现空指针异常");
}
}
}
*3 建立一个三层的异常继承体系,创建他的一个方法A抛出异常体系的基类异常,用B继承A并重载方法抛出第二层异常,用C继承B重载该方法抛出第三层异常,在main 中创建一个C类对象,把它向上转型为A,然后调用这个方法
class MyException1 extends Exception
{
private static final long serialVersionUID = 1L;
}
class MyException2 extends MyException1
{
private static final long serialVersionUID = 1L;
}
class MyException3 extends MyException2
{
private static final long serialVersionUID = 1L;
}
class A
{
void work() throws MyException1
{
throw new MyException1();
}
}
class B extends A
{
void work(int i) throws MyException2
{
throw new MyException2();
}
}
class C extends B
{
void work(int i,String s) throws MyException3
{
throw new MyException3();
}
}
public class ExceptionTest03 {
public static void main(String [] args)
{
C c = new C();
A a = c;
try{
a.work();
}catch(MyException1 e){
System.out.println("捕获异常");
}
}
}