其他分享
首页 > 其他分享> > 泛型小结

泛型小结

作者:互联网

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