List<List<integer> > JAVA java的继承和实现概念

本文介绍了Java中List的嵌套使用,允许每个元素是另一个List,实现灵活的二维数组效果。同时,阐述了Java继承的概念,通过示例展示了如何创建一个父类Human以及三个子类Student、Teacher和BanZhuRen,减少代码冗余。通过继承,子类可以复用父类的属性和行为,提高了代码的复用性。此外,还讨论了继承的特性,如单继承、访问权限等。
摘要由CSDN通过智能技术生成

在List1<>中再放一个List2<>,List1中每个List2的长度可以是任意的,而不是像二维数组那样维度固定。
如:

List<String> 表示: 该数组中的所有元素都是String
List<Integer> 。。。。都是Integer
List<List<String>> 表示该数组是一个二维数组, 该数组的每个元素都是 List<String>
例如:
[
     
['a','b','c'],  
     ['d', 'e', 'f']
]

    public static void main(String[] args)
    {
        List<List<Integer>> a=new ArrayList<List<Integer>>();
        for(int i=0;i<3:i++)
        {
        List<Integer> b=new ArrayList<Integer>();
        for(int j=0;j<=i;j++)
        {
        b.add(j);
        }
        a.add(b);
        }
        System.out.println(a);

    }

java的继承和实现概念

继承实际上是子类相同的属性和行为可以定义在父类中,子类特有的属性和行为由自己定义,这样就实现了相同属性和行为的重复利用,从而提高了代码复用。
ArrayList 是 List的具体实现 

所以可以写成 List xx = new ArrayList()...

假如我们要定义如下类:学生类,老师类和工人类,分析如下。

学生类属性:姓名,年龄行为:吃饭,睡觉

老师类属性:姓名,年龄,薪水行为:吃饭,睡觉,

教书班主任属性:姓名,年龄,薪水行为:吃饭,睡觉,管理

如果我们定义了这三个类去开发一个系统,那么这三个类中就存在大量重复的信息(属性:姓名,年龄。行为:吃饭,睡觉)。这样就导致了相同代码大量重复,代码显得很臃肿和冗余,那么如何解决呢?

案例代码实现

1.父类Human类

public class Human {// 合理隐藏 private String name ; private int age ; // 合理暴露 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }}

2.子类Teacher类

public class Teacher extends Human {// 工资 private double salary ; // 特有方法 public void teach(){ System.out.println("老师在认真教技术!"); } public double getSalary() { return salary; } public void setSalary(double salary) { this.salary = salary; }}

3.子类Student类

public class Student extends Human{}

4.子类BanZhuren类

public class Teacher extends Human {// 工资 private double salary ; // 特有方法 public void admin(){ System.out.println("班主任强调纪律问题!"); } public double getSalary() { return salary; } public void setSalary(double salary) { this.salary = salary; }}

5.测试类

public class Test {public static void main(String[] args) { Teacher dlei = new Teacher(); dlei.setName("播仔"); dlei.setAge("31"); dlei.setSalary(1000.99); System.out.println(dlei.getName()); System.out.println(dlei.getAge()); System.out.println(dlei.getSalary()); dlei.teach(); BanZhuRen linTao = new BanZhuRen(); linTao.setName("灵涛"); linTao.setAge("28"); linTao.setSalary(1000.99); System.out.println(linTao.getName()); System.out.println(linTao.getAge()); System.out.println(linTao.getSalary()); linTao.admin(); Student xugan = new Student(); xugan.setName("播仔"); xugan.setAge("31"); //xugan.setSalary(1000.99); // xugan没有薪水属性,报错! System.out.println(xugan.getName()); System.out.println(xugan.getAge()); } }

多个类可以称为子类,单独被继承的那一个类称为父类、超类(superclass)或者基类。

继承的含义

继承描述的是事物之间的所属关系,这种关系是:is-a的关系。例如,兔子属于食草动物,食草动物属于动物。可见,父类更通用,子类更具体。我们通过继承,可以使多种事物之间形成一种关系体系。

继承:就是子类继承父类的属性和行为,使得子类对象可以直接具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。

继承的好处

提高代码的复用性(减少代码冗余,相同代码重复利用)。使类与类之间产生了关系。

继承的格式

通过extends关键字,可以声明一个子类继承另外一个父类,定义格式如下:

class 父类 {……}class 子类 extends 父类 {……}

需要注意:Java是单继承的,一个类只能继承一个直接父类,跟现实世界很像,但是Java中的子类是更加强大的

子类不能继承父类的构造器,因为子类有自己的构造器。值得注意的是子类可以继承父类的私有成员(成员变量,方法),只是子类无法直接访问而已,可以通过getter/setter方法访问父类的private成员变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值