泛型、权限修饰符

一.泛型

        在开发中对数据一致性的要求是比较看重的!!!

        例如:

                数组中存的数据 类型都是一致的。

                但是数组有一个不好的地方,数组需要预先定义容量!!!

                集合也是存储数据的,而且集合的容量是随数据的多少不断变化的

1.带有泛型的方法

语法格式:

        public <T> 返回值类型   方法的名字 (参数列表) {   }

        与普通方法相同,带有泛型的方法也有4中形式:

                无参无返回值的方法

                有参无返回值的方法

                无参有返回值的方法

                有参有返回值的方法

public class Demo1 {
    public static void main(String[] args) {
        test(24);
        test("小");
        test('明');
        test1();
        test3("小红");
        test3(48.7);
    }
    //使用泛型的写法
    //这个T只是一个占位而已,如果你传了字符串 那么这个T就是String
    //如果你传了一个整数 那么T  就是Integer
    //具有广泛性和普适性
    //其实方法的重载的升级版本
    //无返回值有参数的
    public static <T> void test (T t) {
        System.out.println(t);
    }
    //无返回值 无参的方法,没有必要使用泛型  没有意义
    public static <T> void test1 () {
        T t = null;
        //你这个结果和泛型有有啥关联?没有任何意义
        System.out.println("嘻嘻哒");
    }
    //无参 有返回值的方法,有咩有必要使用泛型? 没有
    public static <T> T test2() {

        return null;
    }
    //有参 有返回值的方法,这个使用泛型有没有意义? 有!!!
    public static <T> T test3 (T t) {
        return t;
    }
}

总结:

        泛型的方法一定是带有参数的才有意义!!!
        无参的都是无意义的,而且一定要注意带有返回值的
        这个返回值是和参数的T 数据类型要保持一致的

2.带有泛型的类

语法格式:

        class 类<T> { }

注意:在泛型类中如果写泛型方法的时候,不需要加<T> 

class Animal<T> {
    public void play (T t) {
        System.out.println(t);
    }
}
class Panda<T> extends  Animal<T> {
    @Override
    public void play(T t) {
        System.out.println(t);
    }
}
public class Demo2 {
    public static void main(String[] args) {
        Panda<String> panda = new Panda<>();
        panda.play("陪玩狗");

    }
}

3.带有泛型的抽象类

语法格式:

        abstract class 类名<无意义的占位符> { }

abstract class A<T> {
    abstract void testA (T t);
}
//抽象类,暂时没有办法直接实例化,只能再写一个普通类去继承抽象类
//总结:继承了带有泛型的抽象类,那么继承类也需要有泛型!!!
class TestA<T> extends A<T> {

    @Override
    void testA(T t) {
        System.out.println(t);
    }
}
public class Demo3 {
    public static void main(String[] args) {
        //是int的包装类  就是代表的是int类型的数据
        TestA<Integer> testA = new TestA<>();
        testA.testA(89);
    }
}

4.带有泛型的接口

语法格式:

        interface 接口的名字<无意义的占位> { }

//element 元素  Type  类型
interface B<T> {
    //成员方法
    void eat(T t);
}
class TestB<T> implements B<T> {

    @Override
    public void eat(T t) {
        System.out.println(t);
    }
}
public class Demo4 {
    public static void main(String[] args) {
        TestB<Character> testB = new TestB<>();
        testB.eat('g');


    }
}

2.权限修饰符【简单】

其实咱们已经见过权限修饰符了

public private default(不写是叫default) 默认的, protected

权限修饰符 四个:

权限修饰符去修饰 类, 成员变量 ,成员方法 等。赋予他们不同的权限

2.1private修饰符

private 修饰成员变量和成员方法。私有的

1.在本类中可以使用私有化的成员属性和成员方法

2.同一个包下面其他类不能使用私有化的成员属性和成员方法

3.其他的包的下面的其他类不能使用私有化的成员属性和成员方法

总结:private修饰的成员变量和成员方法只能在本类中使用

2.2不写(默认的)

修饰方法和属性

就是不写,默认的

1.在本类中默认的属性和方法是可以使用的

2.同一个包下面的其他类可以使用

3.其他包下面的其他类不能使用的

总结:默认的属性和方法只能在同一个包使用!!!

2.3protected

修饰方法和属性

1.同一个类中可以使用的

2.同一个包下面其他类可以使用

3.不同包下面,如果是子类可以使用但是其他类不能使用

总结:其他包下面其他类不能使用,但是继承的子类可以使用的

2.4public

修饰方法和属性

公开的,谁都可以

开发中最常用的是 private public

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: Kotlin中的修饰符包括访问权限修饰符和成员修饰符。访问权限修饰符包括public、protected、private和internal。其中,public表示所有地方可见,protected表示子类中可见,private表示类中可见,internal表示模块中可见。\[1\]成员修饰符包括override、open、final和abstract。override表示重写函数,open表示可被重写,final表示不能被重写,abstract表示抽象函数。\[2\]此外,Kotlin中还有一些特殊的修饰符,如in和out用于的修饰,in相当于Java中的super关键字,out相当于Java中的extends关键字。\[1\]需要注意的是,在Kotlin中,外层的类不能访问内部类的private成员。\[3\] #### 引用[.reference_title] - *1* *2* [kotlin中的修饰符](https://blog.csdn.net/mjb00000/article/details/79268392)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Kotlin语法(九)-修饰符](https://blog.csdn.net/tangxl2008008/article/details/52421476)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值