欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

每日一练(2)

程序员文章站 2022-07-07 09:08:47
...

每日一练(2)

1. 类方法和对象方法

类方法是属于整个类的,而实例方法是属于类的某个对象的。

由于类方法是属于整个类的,并不属于类的哪个对象,所以类方法的方法体中不能有与类的对象有关的内容。即类方法体有如下限制:

  • 类方法中不能引用对象变量。
  • 类方法中不能调用类的对象方法。
  • 在类方法中不能使用super、this关键字。
  • 类方法不能被覆盖。

如果违反这些限制,就会导致程序编译错误。与类方法相比,对象方法几乎没有什么限制:

  • 对象方法中可以引用对象变量,也可以引用类变量。
  • 对象方法中可以调用类方法。
  • 对象方法中可以使用super、this关键字。

2. 类,接口关系

  • 类与类之间的关系为继承,只能单继承,但可以多层继承。
  • 类与接口之间的关系为实现,既可以单实现,也可以多实现。
  • 接口与接口之间的关系为继承,既可以单继承,也可以多继承。

3. 抽象类,接口

抽象类

  • 抽象类中可以构造方法。
  • 抽象类中可以存在普通属性,方法,静态属性和方法。
  • 抽象类中可以存在抽象方法。
  • 如果一个类中有一个抽象方法,那么当前类一定是抽象类,而抽象类中不一定有抽象方法。
  • 抽象类中的抽象方法,需要有子类实现,如果子类不实现,则子类也需要定义为抽象的。

接口

  • 在接口中只有方法的声明,没有方法体。
  • 在接口中只有常量,因为定义的变量,在编译的时候都会默认加上public static final。
  • 在接口中的方法,永远都被public来修饰。
  • 接口中没有构造方法,也不能实例化接口的对象。
  • 接口可以实现多继承。
  • 接口中定义的方法都需要有实现类来实现,如果实现类不能实现接口中的所有方法,则实现类定义为抽象类。

4. 以下代码执行后的输出结果

public class Test {
	public static void main(String[] args){
		System.out.println(test());
	}
	
	private static int test() {
		int temp = 1;
		try {
			System.out.println(temp);
			return ++temp;
		} catch (Exception e) {
			System.out.println(temp);
			return ++temp;
		} finally {
			++temp;
			System.out.println(temp);
		}
	}
}

执行顺序为:

  • 输出try里面的初始temp:1;
  • temp = 2;
  • 保存return里面的temp的值:2;
  • 执行finally的语句temp:3,输出temp:3;
  • 返回try中的return语句,返回存在里面的temp值:2;
  • 输出temp:2。

结果为:1 3 2