美文网首页
面向对象-抽象与接口

面向对象-抽象与接口

作者: WYZ_8db0 | 来源:发表于2019-03-25 00:35 被阅读0次

    代码块

    局部代码块

    写在方法内部的代码块

    局部代码块:有什么用?

    1.没什么用:if  for while  控制代码执行流程:一般要与if之内的结合才有用

    2.作用域的时候:

    2.构造代码块

    写在类的结构体重的【会在每一个构造方法中复制一份】

    静态代码块

    写在类的结构体中的代码,使用static修饰的

    特点会优先于主方法执行:

    静态加载-----【类---加载----初始化{静态语句执行}---执行】

    做一些初始化操作。例如之前的恶汉模式

    继承与组合的关系

    组合的概念

    组合多个类的对象,调用传参

    组合的代码实现

    class _02ZhuHe{

    public static void main(String[] args){

    //创建一个手机卡对象

    Card card=new Card("53555");

    //创建一个手机对象

    CellPhone phone=new CellPhone(card);

    //调用手机对象的展示手机号方法

    phone.showNum();

    }

    }

    //设计一个类

    class Card{//设计一个手机卡类里面保存电话号码,有查询手机卡号码的行为

    String num;

    Card(String num){//有参的构造方法

    this.num=num;

    }

    public void print(){//查询手机卡号码

    System.out.println("你的手机号码是"+num);

    }

    }

    //设计一个类

    class CellPhone{//设计一个手机类,里面有电话卡

    Card card;//

    CellPhone(Card card){//创建一个有参构造

    this.card=card;

    }

    public void showNum(){//展示手机号码

    card.print();

    }

    }class _02ZhuHe{

    public static void main(String[] args){

    //创建一个手机卡对象

    Card card=new Card("53555");

    //创建一个手机对象

    CellPhone phone=new CellPhone(card);

    //调用手机对象的展示手机号方法

    phone.showNum();

    }

    }

    //设计一个类

    class Card{//设计一个手机卡类里面保存电话号码,有查询手机卡号码的行为

    String num;

    Card(String num){//有参的构造方法

    this.num=num;

    }

    public void print(){//查询手机卡号码

    System.out.println("你的手机号码是"+num);

    }

    }

    //设计一个类

    class CellPhone{//设计一个手机类,里面有电话卡

    Card card;//

    CellPhone(Card card){//创建一个有参构造

    this.card=card;

    }

    public void showNum(){//展示手机号码

    card.print();

    }

    }

    枚举

    1. 枚举的概念

    比较简单的,设计一个数据类型:只存在固定的几个值

    2. 枚举的语法及基本使用

    enum Sex{

    MAN("男"),WOMAN("妹子");

    String name;//定义一个枚举属性的字段

    Sex(String name){//有参的构造方法

    this.name=name;

    }

    public String toString(){//覆写toString方法

    return name;

    }

    }

    3. 枚举的拓展

    1.枚举值,写中文,男,女汉子不合适,编程都是用英文

    2.中国人来说,打印英文不合适,希望打印中文

    枚举语法特点:可以有构造方法的,字段,方法的

    3.内置一个字段

    4.发现枚举可以调用Object里东西,枚举与Object判断类型也是true

    私生子不能说名的

    5.枚举都是隐式的发展:所有的枚举:拓展至Enum类

    抽象类

    1. 抽象的引入

    1.抽象类:abstract 修饰的一个类

    2.抽象方法:abstract修饰的一个方法,只能存在于抽象类中,或者接口中

    2.抽象方法

    abstract修饰的方法,不能有方法体,必须覆写抽象方法

    2. 抽象支持多态写法

    1.作为一个模板的:只是为了抽取公共的属性

    2.规定了一个更大的数据类型,很好的支持多态的写法

    3.规范子类的写法

    接口

    接口的引入

    接口的语法验证及接口与类的使用

    1.接口与类的使用:

    充电宝插入到接口,在充电宝端实现了充电

    class USBImpl implements USB{}//USBImpl对接口USB的一个实现

    2.软件接口java接口的介绍

    软件与软件之间数据交互的接口

    java中的接口

    Java中的接口:是一个跟类很相似的结构

    3.类实现接口

    1.一个类是可以实现多个接口的:传说中的干爹

    2.一个类实现了接口,还可以继承类:

    继承应该在前面,实现应该在后面,亲爹比干爹亲

    4.接口与接口

    多继承关系,一个接口可以继承多个接口

    内部类

    内部类介绍

    在一个类中再定义一个类

    内部类创建对象及方法使用

    非静态

    外部类名.内部类名 变量名=new 外部类().new 内部类();

    静态:

    外部类名.内部类名 变量名=new 外部类名.内部类名();

    匿名内部类

    定义在主方法内

    直接实现覆写父类的方法,不用创建子类

    语法:

    noName(new父类名(){//把里面看成是USB实现的一个对象【有对象了,就该有类,但是看不到名字,匿名内部类】

    public void print(){//覆写接口中的抽象方法

    System.out.println("匿名内部类");//覆写父类方法

    }

    });

    相关文章

      网友评论

          本文标题:面向对象-抽象与接口

          本文链接:https://www.haomeiwen.com/subject/kurmvqtx.html