利用Java面向对象思想完成Email输入验证 写出java代码
时间: 2024-09-30 18:06:02 浏览: 27
在Java中,利用面向对象的思想进行电子邮件输入验证,我们可以创建一个抽象类`EmailValidator`,然后让具体的邮箱格式相关的类如`GeneralEmailValidator`、`YahooEmailValidator`等去实现这个抽象类。这里是一个简单的示例:
```java
// 定义一个抽象EmailValidator接口
public interface EmailValidator {
boolean isValid(String email);
}
// 创建一个通用的EmailValidator抽象类
public abstract class AbstractEmailValidator implements EmailValidator {
protected static final String EMAIL_PATTERN = "^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$";
@Override
public abstract boolean isValid(String email);
// 验证函数,大多数情况下的基本校验
protected boolean basicValidation(String email) {
if (email == null || email.trim().isEmpty()) return false;
return email.matches(EMAIL_PATTERN);
}
}
// 具体的邮箱验证实现,例如YahooEmailValidator
public class YahooEmailValidator extends AbstractEmailValidator {
@Override
public boolean isValid(String email) {
return super.basicValidation(email) && email.endsWith("@yahoo.com");
}
}
// 使用示例
public class Main {
public static void main(String[] args) {
EmailValidator validator = new YahooEmailValidator(); // 或者AbstractEmailValidator, 根据实际需求选择
System.out.println(validator.isValid("test@yahoo.com")); // 输出 true
System.out.println(validator.isValid("invalid_email")))); // 输出 false
}
}
```
在这个例子中,`YahooEmailValidator`实现了`EmailValidator`接口,并且在其`isValid`方法中添加了对Yahoo邮箱特定格式的检查。
阅读全文