博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向对象-day02
阅读量:7127 次
发布时间:2019-06-28

本文共 3439 字,大约阅读时间需要 11 分钟。

  • ###代码块

    **局部代码块,构造代码块,静态代码块,同步代码块(多线程讲解)

    代码块的格式:要使用{}括起来

常见代码块的应用

  • a:局部代码块

    • 在方法中出现;限定变量生命周期,及早释放,提高内存利用率
  • b:构造代码块 (初始化块)

    • 在类中方法外出现;多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行
  • c:静态代码块

    • 在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且只执行一次。

    • 一般用于加载驱动

      /*代码块的例题*/class Test {    public static void main(String[] args) {        {            System.out.println("main中局部代码块");        }        Code c=new Code();        c.testOne();        c.testTwo("zhangsan",10);    }}class Code {    private String name;    private int age;    public void testOne(){        System.out.println("无参函数");        {            System.out.println("testOne中局部代码块");        }    }        public void testTwo(String name,int age) {        this.name=name;        this.age=age;        System.out.println("有参函数");        {            System.out.println("testTwo中局部代码块");        }    }    {        System.out.println("构造代码块");    }   static {        System.out.println("静态代码块");    }}复制代码

      main中局部代码块

      静态代码块

      构造代码块

      无参函数

      testOne中局部代码块

      testTwo中局部代码块

      有参函数

      ###编译结果:

      testTwo中局部代码块wanghui@wanghui-Inspiron-3543:~/练习javac Test.java wanghui@wanghui-Inspiron-3543:~/练习 java Test main中局部代码块 静态代码块 构造代码块 无参函数 testOne中局部代码块 有参函数 testTwo中局部代码块

      从该题中知道了静态代码块的优先级要大于构造代码块,且静态代码块只运行一次

      ###继承extends

      爷爷...爸爸...儿子的关系

      #面向对象(Java中类的继承特点)
      • A:Java中类的继承特点
        • a:Java只支持单继承,不支持多继承。(一个儿子不能有两个以上的个爹)
          • 有些语言是支持多继承,格式:extends 类1,类2,...
        • b:Java支持多层继承(继承体系)
      • B:案例演示
        • Java中类的继承特点
          • 如果想用这个体系的所有功能用最底层的类创建对象
          • 如果想看这个体系的共性功能,看最顶层的类

      ###08.06_面向对象(继承的注意事项和什么时候使用继承)(掌握)

      A:继承的注意事项

      a:子类只能继承父类所有非私有的成员(成员方法和成员变量)

      b:子类不能继承父类的构造方法,但是可以通过super关键字去访问父类构造方法。

      c:不要为了部分功能而去继承

      this与super的区别

      this:代表当前对象的引用,谁来调用我,我就代表谁

      super:代表当前对象父类的引用

      /*创建一个extends的例题,让子继承父*/class Demo_Extends {    public static void main(String[] args){        Son s=new Son();        s.speak("zhangsan",10);      }}class Father {    private String name;      //私有成员变量    private int age;          //私有成员变量    public void speak(String name,int age) {  //有参函数        this.name=name;        this.age=age;        System.out.println("name:"+name+"   age:"+age+"   xixi");        {            System.out.println("这是一个father构造代码块");           }    }}class Son extends Father {    //子继承父    {        System.out.println("这是一个son构造代码块");    }    static{        System.out.println("这是一个静态代码块");    }}复制代码

      这是一个son构造代码块

      这是一个father构造代码块

      name:zhangsan age:10 xixi

      ###编译结果:

      wanghui@wanghui-Inspiron-3543:~/练习javac Demo_Extends.java wanghui@wanghui-Inspiron-3543:~/练习 java Demo_Extends 这是一个静态代码块 这是一个son构造代码块 name:zhangsan age:10 xixi 这是一个father构造代码块

      此处顺序没搞太明白

面向对象(方法重写概述及其应用)

A:什么是方法重写

重写:子父类出现了一模一样的方法(注意:返回值类型可以是子父类,这个我们学完面向对象讲)

B:方法重写的应用:

当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法。这样,即沿袭了父类的功能,又定义了子类特有的内容。

/* 电脑有显示功能,有qq聊天功能,如今想加一个微信聊天功能,使用重写实现*/class Computer {    public static void main(String[] args) {        NowFunction now=new NowFunction();        now.show();            now.chat();    }}class Function {    public void show() {                     //显示的方法        System.out.println("我能显示");           }    public void chat() {                     //聊天的方法        System.out.println("我能用qq聊天");    }}class NowFunction extends Function {       //继承并重写方法chat     public void chat() {        super.chat();        System.out.println("我能用微信聊天");     }}复制代码

预测显示结果:

我能显示

我能用qq聊天

我能用微信聊天

###编译结果:

wanghui@wanghui-Inspiron-3543:~/练习javac Computer.java wanghui@wanghui-Inspiron-3543:~/练习 java Computer 我能显示 我能用qq聊天 我能用微信聊天

面向对象(final关键字修饰类,方法以及变量的特点)(掌握)

A:final概述

B:final修饰特点

  • 修饰类,类不能被继承
  • 修饰变量,变量就变成了常量,只能被赋值一次
  • 修饰方法,方法不能被重写

面向对象(final关键字修饰局部变量)

A:案例演示

方法内部或者方法声明上都演示一下(了解)

基本类型,是值不能被改变

引用类型,是地址值不能被改变,对象中的属性可以改变

转载于:https://juejin.im/post/5bc35af75188255c7664237b

你可能感兴趣的文章
IP数据包的分片与重组过程
查看>>
命好不如习惯好
查看>>
/etc/X11/xorg.conf 文件被误改后进不了图形化界面
查看>>
Android 通过反射及AIDL获取双卡手机SIM卡相关信息,及注册监听
查看>>
shell批量新建文件及批量改名
查看>>
APP适配安卓手机刘海屏
查看>>
bind10 新版本发布(版本号bind10-devel-20120816)
查看>>
junit 参数化测试
查看>>
分区表维护
查看>>
听说iPhone X到货了,识别体验是不是科技感爆棚?
查看>>
windows server2012中创建密码重设盘
查看>>
openstack-icehouse部署中遇到的一些故障(小笔记)
查看>>
redhat 替换 yum
查看>>
Google决定用gLinux取代Goobuntu Linux操作系统
查看>>
《将博客搬至CSDN》
查看>>
TCP/IP和OSI参考模型
查看>>
python日志管理模块logging
查看>>
Android用Intent和Bundle传list
查看>>
MySQL count(*) 优化
查看>>
西城110/linux高级作业(12.26)
查看>>