泛型小结
作者:互联网
1.范型1-数组回顾及优缺点
优点:可高效运行
缺点:无法直接删除和增加元素。
2.范型2-ArrayList的使用及缺点分析
优点:不必在最开始就确定长度,当数据数量超过默认长度会自动增加,可以实现对数据的自动装箱,可以存放多种数据类型,可以直接进行数据的增删。
缺点:默认为OBJECT类型,这样保存的数据在使用时有时需要强转,容易出错。
3.范型3-入门-用范型解决隐患问题
范型作用:
1、保证了类型的安全性。
说明:没有泛型,则容器中可以加入任何数据类型的元素,不安全。
2、避免强制转换
说明:消除源代码中的许多强制类型转换,减少了出错机会
3、提升性能
说明:避免了不必要的装箱、拆箱操作,提高程序的性能
4、提高了代码的重用性。
说明:没有范型,就要在定义类使用各种具体的数据类型。
4.范型4-定义-范型类
public class 类名<T>{//定义泛型类
5.范型5-定义-范型方法
public <T> void 方法名(T t){}
6.范型6-定义-范型接口
public interface 接口名<E>
7.范型7-通配符1-问号
<?>表示一个不确定的类型,在编译时确定为指定数据类型。
8.范型8-通配符2-问号extends T类
?的类型只能是T类型及其子类
9.范型9-通配符3-问号super T类
?的类型只能是T类型及其父类
10.范型10-通配符4-问号extends接口
只能为能实现接口的类及其子类。
package Homework6; public class User { private String userName; private String password; public User() { } public User(String userName, String password) { this.userName = userName; this.password = password; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User{" + "userName='" + userName + '\'' + ", password='" + password + '\'' + '}'; } } package Homework6; import java.util.Scanner; public class start { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (true) { System.out.println("请输入用户名,首字母必须是英文,后面可以跟数字和字母,英文必须同时包含大小写:"); String userName = sc.next(); boolean check = checkUserName(userName); if (check){ System.out.println("请输入密码:"); String password = sc.next(); System.out.println("请再次输入密码:两次密码必须相同"); String okPassword = sc.next(); if (password.equals(okPassword)) { System.out.println("**注册成功"); break; } else { System.out.println("您两次输入密码不一致,请重新输入"); } }else { System.out.println("你的用户名输入不符合规则"); } } } private static boolean checkUserName(String userName) { int lowerNum = 0; int upperNum = 0; for (int i = 0; i <userName.length() ; i++) { char c = userName.charAt(i); if (Character.isLowerCase(c)) { lowerNum++; }else if (Character.isUpperCase(c)){ upperNum++; } } if (lowerNum <1 && upperNum <1){ System.out.println("用户名不符合规范"); }else if (lowerNum >=1 && upperNum >=1 && Character.isLetter(userName.charAt(0))){ return true; } return false; } }
搜索
复制
标签:范型,userName,String,System,泛型,password,小结,public 来源: https://www.cnblogs.com/wl123wl123/p/16326650.html