Java基础知识补充(实例)

数组倒序

将一个数组逆序输出。

public class JavaTest1 {
    public static void main(String[] args){
        java.util.Scanner scanner=new java.util.Scanner(System.in);
        System.out.println("请输入要逆序的数组的长度");
        int length=scanner.nextInt();
        int[] arr1=new int[length];
        System.out.println("请输入要逆序的数组的元素");
        for(int i=0;i<arr1.length;++i)
            arr1[i]=scanner.nextInt();
        int[] arr2=new int[arr1.length];
        for(int i=0;i<arr1.length;++i){
            arr2[arr1.length-1-i]=arr1[i];
        }
        for(int j=0;j<arr2.length;++j){
            System.out.print(arr2[j]+"\t");
        }
    }
}

字符串排序

public class JavaTest40 {
    public static void main(String[] args){
        java.util.Scanner scanner=new java.util.Scanner(System.in);
        System.out.println("请输入字符串的数量");
        int length=scanner.nextInt();
        String[] arr=new String[length];
        System.out.println("请输入字符串,用空格分隔开");
        for(int i=0;i<arr.length;++i)
            arr[i]=scanner.next();
        sortString(arr);
        for(int i=0;i<arr.length;++i){
            System.out.print(arr[i]+" ");
        }
    }
    public static void sortString(String[] arr){
        for(int i=0;i<arr.length;++i){
            for(int j=0;j<arr.length-1-i;++j){
                if(arr[j].compareTo(arr[j+1])>0){
                    String temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
    }
}

关键字

1.final关键字

1.fianl关键字的作用
​ final代表最终的意思,可以修饰成员方法,成员变量,类

2.final修饰类、方法、变量的效果
​ fianl修饰类:该类不能被继承(不能有子类,但是可以有父类)
final修饰方法:该方法不能被重写
​ final修饰变量:表明该变量是一个常量,不能再次赋值

3.fianl修饰基本数据类型变量
​ final 修饰指的是基本类型的数据值不能发生改变

4.final修饰引用数据类型变量
​ final 修饰指的是引用类型的地址值不能发生改变,但是地址里面的内容是可以发生改变的

2. static关键字

1.static的概念
​ static关键字是静态的意思,可以修饰【成员方法】,【成员变量】

2.static修饰的特点
​ 被类的所有对象共享,这也是我们判断是否使用静态关键字的条件
可以通过类名调用当然,也可以通过对象名调用

3.static的访问特点
(1)非静态的成员方法
​ 能访问静态的成员变量
​ 能访问非静态的成员变量
​ 能访问静态的成员方法
​ 能访问非静态的成员方法
(2)静态的成员方法
​ 能访问静态的成员变量
​ 能访问静态的成员方法

3. super和this关键字

1.this:代表本类对象的引用
super:代表父类存储空间的标识(可以理解为父类对象引用)
this和super的使用分别

2.成员变量:
this.成员变量 - 访问本类成员变量
super.成员变量 - 访问父类成员变量

3.成员方法:
​ this.成员方法 - 访问本类成员方法
​ super.成员方法 - 访问父类成员方法

4.构造方法:
​ this(…) - 访问本类构造方法
​ super(…) - 访问父类构造方法

内部类

内部类:将一个类定义在另一个类里面或者一个方法里面

成员内部类

1、成员内部类:
成员内部类看起来像是外部类的一个成员,所以内部类可以拥有private、public等访问权限修饰;当然,也可以用static来修饰。成员内部类分为:

静态成员内部类:使用static修饰类;
非静态成员内部类:未用static修饰类,在没有说明是静态成员内部类时,默认成员内部类指的就是非静态成员内部类;
注:只有成员内部类才能加static变成静态内部类。

(1)静态内部类

class OutClass {
 	static class InnerClass {
      static String test = "test";
      int a = 1;
      static void fun1() {}
      void fun2() {}
  }
}

(2)非静态内部类

public class Circle {
  private double radius = 0.0;
  public static int count = 1;
  public Circle(double radius) {
    this.radius = radius; 
  }
 public class Draw {
    public void drawSahpe() {
      System.out.println(radius);
      System.out.prinlt(count);
  }
}

局部内部类

局部内部类是在方法中定义的类,以外界是无法直接使用,需要在方法内津对象并使用
该类可以续访问外部类的成员,也可以访问方法内的局部变量

 	public void test() {
		class InnerClass {
			private String name;
			final static String test = "1";
			public InnerClass(String name) {
				super();
				this.name = name;
			}
			public void say(String str) {
				System.out.println(name+":"+str);
			}
		}
		new InnerClass("test").say("hello");
	}

匿名内部类

前提:存在一个类或者接口,这果的类可以是具体类也可以抽象类

public class Demo {
    private Runnable runnable = new Runnable() {
        @override
        public void run() {}
    }
}

异常

定义:在程序运行过程中出现的错误,称为异常。异常就是程序运行过程中出现了不正常现象导致程序的中断。在Java中,把各种异常现象进行了抽象形成了异常类。

分类:检查时异常;运行时异常;错误。

1.检查时异常:检查时异常最具有代表性的就是用户错误或者是问题引起的异常,这种异常是我们程序员无法进行预测的。例如我们要打开一个文件时文件不见了,这些异常都是在编译时不能被简单的忽略的。
2.运行时异常:运行时异常是可能被程序员避免的异常,与检查时异常相反,运行时异常可以在编译时被忽略。
3. 错误:错误不是异常,而是不被程序员控制的问题,错误在代码中通常被忽略。例如当栈溢出时,错误就产生了,并且在程序编译的时候也无法被找到。

抛出以及捕获异常

 try:抛出异常(尝试着去处理什么东西)。

 catch:捕获异常。

 final:无论有什么异常发生,finally都会被执行(可以运行清理类型等收尾善后性质的语句)。

 throw:当程序发生异常而无法处理的时候,会抛出对应的异常对象。

 throws:throws用来在类中捕获异常信息,标明方法可能抛出的异常。

自定义异常

定义:使用Java内置的异常类可以描述在编程时出现的大部分异常情况。除此之外,用户还可以自定义异常,用户自定义异常类,只需要继承Exception类即可。

在程序中使用自定义异常类步骤

  1.创建自定义常类。

  2.在方法中通过throw关键字抛出异常。

  3.如果在当前抛出异常的方法中处理异常,可以使用try——catch语句来捕获异常并处理,否则在方法的声明处通过throws关键字指明要抛出给方法调用的异常,继续下一步操作。

  4.在出现异常方法的调用者中捕获并处理异常。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值