JAVA学习第八周

封装代码实现两步:
第一步:属性私有化"private"
第二步:1个属性对外提供两个set和get方法.外部程序只能通过set方法修改,只能通过get访问,可以在set方法中设立关卡来保证数据的安全性.
强调一下:
set和get方法都是实例方法,不能带static.
不带static的方法称为实例方法,实例方法的调用必须先new对象.
加static的变量叫做静态变量.
静态变量在类加载时初始化,不需要new对象,静态变量的空间出来了.
静态变量存储在方法区.
静态方法(静态方法不需要new对象,直接使用"类名."来访问)
也可以使用"引用."来访问.不建议.
实例方法(实例相关的都需要new对象,使用"引用."来访问.
静态方法不会出现空指针异常
this是一个关键字,是一个引用,保存内存地址指向自身.
this可以使用在实例方法中,也可以使用在构造方法中
this出现在实例方法中其实代表的是当前对象.
this不能使用在静态方法中.
this大部分情况下可以省略,但是用来区分局部变量和实例变量的时候不能省略.
this()这种语法只能出现在构造方法第一行,表示当前构造方法调用本类其他的构造方法,目的是代码复用.
覆盖:
1.方法覆盖只是针对与方法,和属性无关.
2.私有方法无法覆盖.
3.构造方法不能被继承,所以构造方法也不能被覆盖.
4.方法覆盖只是针对于实例方法,静态方法没有意义.

toString()方法存在的作用就是:将java对象转换成字符串形式.
大多数的java类toString()方法都需要覆盖.因为object类中提供的toString()
方法输出的是一个java对象的内存地址
方法重载和方法覆盖有什么区别?
方法重载发生在同一个类当中.
方法覆盖是发生在具有继承关系的父子类之间. 
抽象类不能被实例化abstract
抽象类不能被final修饰
子类可以继承抽象类,子类可以实例化对象
接口是完全抽象类(抽象类是半抽象类),或者认为接口是特殊的抽象类.
interface 接口名(类)()  访问通过:接口名.
一个接口可以继承多个接口/  接口只包括两部分:常量和抽象方法  
抽象方法没有方法体
类和类之间叫做继承extends/类和接口之间叫做实现implements
当一个非抽象的类实现接口的话,必须将接口中所有的抽象方法全部实现(覆盖,重写)
抽象类和接口的区别
1.抽象类是半抽象的,有构造方法,类和类之间只能单继承,一个类可以实现多个接口
2.接口是完全抽象的,没有构造方法,接口与接口之间支持多个继承,一个抽象类只能继承一个类

public class Ordertest {
    public static void main(String[] args) {
    FoodMenu a=new ChinaCooker();
    FoodMenu.Customer b=new FoodMenu.Customer(a);
    b.order();
    }

    public static interface FoodMenu {
        void shizi();
        void yuxian();

        class Customer {
            FoodMenu foodMenu;

            public Customer(FoodMenu foodMenu){
                this.foodMenu=foodMenu;
            }
            public void order(){
                foodMenu.shizi();
                foodMenu.yuxian();
            }
        }
    }

    public static class AmericCooker implements FoodMenu {
        public void shizi(){
            System.out.println("西餐师傅做的沙拉牛排good");
        }
        public void yuxian() {
            System.out.println("西餐师傅做的鱼香肉丝good");
        }
    }

    public static class ChinaCooker implements FoodMenu {
        public void shizi(){
            System.out.println("中国师傅做的包子很好吃");
        }
        public void yuxian(){
            System.out.println("中国师傅做的鱼香肉丝很好吃");
        }

    }
}

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值