栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

day08学习笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

day08学习笔记

目录

一、成员变量与局部变量的比较

二、封装

三、构造方法

四、静态

五、静态变量与成员变量的比较

六、继承


一、成员变量与局部变量的比较

        1.定义的位置不同

                成员变量定义在类中 方法外

                局部变量定义在方法中

        2.生命周期不同

                成员对象随着对象的加载而加载 随着对象的销毁而销毁

                局部变量随着方法的调用而加载 随着方法的结束而销毁

        3.存储的位置不同

                成员变量存在堆内存中

                局部变量存在栈内存中

        4.是否有默认值

                成员变量都有默认值

                        整数类型 0 、小数类型 0.0 、字符类型 u0000(空格)、布尔类型 false、引用类型 null

                局部变量没有默认值, 局部变量必须先赋值才能使用

二、封装

        1.概念:隐藏内部细节,提供对外访问方法

        2.好处:

                提高代码安全性

                提高代码可扩展性和可维护性

        3.体现:

                a.对属性的封装

                b.对工具类的封装 加密解密工具类 时间格式化工具类 字符串工具类 json工具类

        4.对属性进行封装 使用关键字 private

                a.关键字: private 私有 私人

                b.修饰成员 类 方法 变量 ......

                c.使用private进行修饰 只能本类进行访问

        5.方案

                问题: 使用private修饰的成员 只能本类进行访问

                解决: 提供两个对外访问方法 setxxx() getxxx() ==>xxx 表示的是属性的名称

                setxxx() ==>用于来设置值 getxxx()==> 用于来获取值

        6.方案

                问题:方法的参数名与成员变量的名称相同 导致成员变量赋值失败

                原因: 变量访问是离声明变量最近的位置 在方法中

                           局部变量优先级大于成员变量 ==>优先访问局部变量

               解决: 使用关键字 this 表示当前对象的引用==>就是当前对象

                         this.变量名==>访问的是成员变量

                        this.方法名==>访问的是成员方法

                        this()==>访问是构造方法

        7.快捷键:alt+ins

三、构造方法

        1.构造方法也叫构造函数和构造器

        2.作用:

                使用构造方法实例化对象

                使用构造方法来给成员变量赋值

                所以实例化的对象都会执行构造方法

         3.构造方法的分类:

                无参构造方法

                有参构造方法

        4.语法:

                访问修饰符 类名(参数列表){
                给成员变量赋值        

                }

        5.说明:

                构造方法的方法名必须是类名

                构造方法可以使用return; 用于结束方法 但不能返回具体数据        

                构造方法不能进行自身调用  必须通过jvm来进行调用

        6.注意点:

                在一个类中如果不提供任何构造方法 系统会默认提供一个无参构造方法

                在一个类中如果提供了任何的构造方法 系统就不会提供默认的无参构造方法

                构造方法是可以重载的

                在实际开发中一般提供两个构造方法 一个无参构造方法 一个有参构造方法

        7.快捷键:alt+ins

        8.set方法与构造方法比较

                相同点:都可以用于给成员变量赋值

                不同点:

                        构造方法只能在创建对象的时候进行一次赋值

                        set方法可以给成员变量多次赋值

                        

四、静态

        1.静态修饰关键字:static

        2.修饰的成员:类  、  变量 、  方法

        3. 好处:

                没有静态之前

                        多个对象相同的属性值的时候 需要开辟多个空间开进行存储 浪费内存空间 修改数据比较麻烦

                有静态之后

                        多个对象相同的属性值 只需要在方法区中静态区间开辟一块空间 实现所有对象共享 节省内存空间 修改数据比较方便 

  没有静态之前的内存图

 有静态后的内存图

         4.静态变量

                语法:static 数据类型  变量名

                静态变量优先与对象先进行加载

                静态变量是存在方法区中的静态区间

         5.静态变量的访问方式

                通过类名访问     类名.静态变量名  (推荐)

                通过对象名访问    对象名.静态变量名   (不推荐)

        6.静态变量所属于类变量 随着类的加载而加载  静态变量不容易被gc回收

        7.静态方法:

                语法:  访问修饰符 static 返回值类型 方法名称(参数列表){

                                        方法体

                                return 返回值

                                 }

                注意点:

                        静态方法不能访问非静态变量

                        静态方法不能调用非静态方法

                        静态方法不能调用this关键字

                原因:静态资源优先与对象存在

                 总结:静态方法不能访问非静态资源

五、静态变量与成员变量的比较

        1.所属不同

                静态变量所属于类变量       

                成员变量所属于对象变量

         2.存储位置不同

                静态变量存储在方法区的静态区间中

                成员变量存储在堆内存中

        3.生命周期不同

                静态变量是随着类的加载时而加载  最后被gc回收

                成员变量是随着对象的加载而加载  随着对象的销毁而销毁

        4.访问方式不同

                静态变量的调用方式  

                        直接通过类名进行访问(推荐使用)

                        通过对象名进行访问(不推荐)

                成员变量的调用方式

                        只能通过对象名进行访问

六、继承

        1.继承的概念

        

                继承中至少有两个类 一个是父类 一个是子类

                继承关键字 extends

                继承:就是共性的抽取

                满足 "is a" 的关系才能使用继承 我是你爸爸 就可以使用继承

                子类可以获取父类的资源 但是父类不能获取子类的资源

        2.继承的注意点

                子类不能继承到父类私有的(private)资源 因为使用private修饰的资源 只能在本类进行访问

                子类不能继承到父类的构造方法

                 子类不能继承到父类的构造方法 但是可以调用父类的构造方法 通过关键字 super

                访问父类的无参构造  super()

                访问父类的有参构造  super(参数)

        3.java单继承问题

                1.在java中一个类只能有一个直接父类 但是可以有间接父类(爷爷类)

                                即java中只支持单继承  不能多继承  但支持多层继承

                2.如果一个类没有继承任何类 那么这个类默认继承Object类 Object类是所有类的直接父类或者间接父类

                

         3.继承中访问成员变量的特点

                优先访问子类的成员变量  如果子类中没有 就会向上查找  一直查到Object类中 如果Object类中也没有就会报错

 

                

        

        

          

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1023468.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号