Java面向对象编程——Annotation简介

Annotation是JDK1.5以后提出的一个新的开发技术结构,利用Annotation可以有效的减少程序配置的代码,并进行一些结构化的定义,实际上就是一种以注解的形式实现的程序开发。

以前我们开发程序分为三个过程:

过程一:在程序定义的时候将所有可能使用到的资源全部定义在程序代码之中,比如IP地址等。此时如果IP地址变化,那么就需要进行源代码的修改,维护需要由开发人员来进行。

过程二:引入配置文件,在配置文件中定义全部要使用到的服务器等资源,在配置项目不多时非常好用,但如果所有配置项目都这样使用就会导致配置项目太多。

过程三:将配置信息重新写会到程序中,利用特殊的标记与程序代码分离,这就是Annotation提出的依据。

因此现在基本上都采用:文档+注解的形式

下面我们来看一下几个基本的注解:

覆写:@Override

当子类继承某一个父类后发现父类中的方法不足以满足我们的要求时会采用覆写的方式对扩充我们的功能,这个时候使用@Override可以有效的检测出我们的覆写的方法的正确性

比如以下程序:

class Person{
	 private static String language="汉语";
	 private String name;
	 private int age;
	 private String sex;
	 private double height;
	public void getInfo(){
		System.out.println("父类");
		//System.out.println("姓名:"+this.name+"年龄:"+this.age+"性别:"+this.sex+"身高:"+this.height+"语言:"+language);
	}
}
class child extends Person
{
	@Override
	public void getInfp(){//方法名与父类不同
		System.out.println("子类");
	}
}
public class Demo{
	public static void main(String args[]){

	}
}

执行结果:

我们从代码中可以看到,就因为子类与父类的方法名不同,编译时便出现了错误。如果不加@Override,那么编译将通过,会被认为是子类的一个新方法。

过期操作@Deprecated

过期操作是指在一个软件项目的开发迭代中,可能某一个方法或某一个类,由于在最初设计的时候考虑不周,导致新版本的使用会有不适用的地方(老版本不影响),这是又不能直接删除掉这些操作,那么就希望给一个过渡的时间,于是可以采用一个过期的声明,目的告诉用户,这些操作不要在用了。这样的方法就必须使用@Deprecated注解进行定义

如一下程序:

class child extends Person
{
	@Override
	public void getInfo(){
		System.out.println("子类");
	}
	public child(){
		
	}
	@Deprecated
	public void oldmethod(){
		System.out.println("旧方法");
	}
	public void newmethod(){
		System.out.println("新方法");
	}

}
public class Demo{
	public static void main(String args[]){
		child c=new child();
		c.oldmethod();
	}
}

编译结果:

执行结果:

从结果我们可以知道,使用@Deprecated注解后,会提醒用户使用了过时的API,但是仍然可以使用。

压制警告@SuppressWarnings

就像上面我们出现的使用了过时的API警告,如果我们嫌它烦是可以使用@SuppressWarnings使其消失的

如以下代码

class child extends Person
{
	@Override
	public void getInfo(){
		System.out.println("子类");
	}
	public child(){
		
	}
	@Deprecated
	public void oldmethod(){
		System.out.println("旧方法");
	}
	public void newmethod(){
		System.out.println("新方法");
	}
}
public class Demo{
	@SuppressWarnings({"deprecation"})//压制警告
	public static void main(String args[]){
		child c=new child();
		c.oldmethod();
	}
}

编译时就不会再警告了,是不是舒心多了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值