当前位置: 首页 > news >正文

第二阶段:基础加强阶段总体介绍

Java语法的学习笔记
 下面放复习的文档链接,如果有需要可以前往下载获取,这个仓库还有关于mysql、hadoop、python等的复习部分,并且每个文档有着对应的代码部分。文章作为复习使用,更多代码内容见链接如下:
https://gitee.com/zhang-huile/LearnForJob

目录

第二阶段:基础加强阶段总体介绍

一、static

        一)static修饰成员变量

        1.static是什么?

        2.static修饰的成员变量叫什么?怎么使用?有啥特点?

        3.无static修饰的成员变量叫什么?怎么使用?有啥特点?

    二)类变量应用场景

        1.类变量的应用场景

        2.案例导学

        3.成员变量有几种?各自在什么情况下被定义?

        4.访问自己类中的类变量,是否可以省略类名不写?

    三)static修饰成员方法

        1.static修饰成员方法叫什么?如何使用?

        2.无static修饰成员方法叫什么?如何使用?

    四)static修饰成员方法的应用场景

        1.类方法的应用场景:

        2.工具类是什么?

        3.使用工具类来设计工具类有啥好处?

        4.案例导学      (util3)

        5.为什么工具类的方法要用类方法,而不能用实例方法?

        6.工具类定义时有什么要求?

    五)static的注意事项

    六)static的应用知识   (block5)

 1.代码块

        2.单例设计模式

二、继承

    1.什么是继承?继承后有啥特点

    2.带继承关系的类,java会怎么创建它的对象?对象创建出来后,可以直接访问哪些成员?

    3.使用继承有啥好处?

一)继承的相关注意事项

    1.权限修饰符   (modifer)

    2.单继承、Object类   (extendsfeature  继承的特点)

    3.方法重写   (override)

    4.方法重写是什么?

    5.重写方法有哪些注意事项?

    6.子类访问其他成员(成员变量、成员方法)的特点   (access 就近原则  谁近访问谁)

    7.子类构造器的特点   (constructor)

    8.补充知识:this()调用兄弟构造器   (this)

    9.super(...)调用父类构造器的常见应用场景是什么?

    10.this(...)的作用是什么?

    11.this(...)和super(...)的使用时需要注意什么?


第二阶段:基础加强阶段总体介绍

一、static

学习内容:
        static  、  设计模式:单例   、继承

        一)static修饰成员变量

        1.static是什么?

                叫静态,可以修饰成员变量、成员方法
                    成员变量按照有无static修饰,分为两种:
                1).类变量   : 有static修饰,属于类所有,在计算机中只有一份,会被类的全部对象共享
                2).实例变量(对象的变量) : 没有static修饰,属于对象所有,每个对象都有一份,互不影响
                    推荐通过使用 类名.类变量 进行访问类变量

        2.static修饰的成员变量叫什么?怎么使用?有啥特点?

            类变量(静态成员变量)
            类名.类变量名 访问类变量(推荐)
            对象名.实例变量名 访问实例变量(不推荐)
            属于类,与类一起加载一次,在内存中只有一份,会被类的所有对象共享

        3.无static修饰的成员变量叫什么?怎么使用?有啥特点?

            实例变量(非静态成员变量)
            对象名.实例变量名
            属于对象,每个对象都有一份,互不影响

    二)类变量应用场景

        1.类变量的应用场景

        在开发中,如果某个数据只需要一份,且希望能够被共享(访问、修改),则该数据可以定义成类变量来记住。

        2.案例导学

        例如:系统启动后,要求用户类可以记住自己创建了多少个用户对象。

        3.成员变量有几种?各自在什么情况下被定义?

            类变量:数据有需要一份,且需要被共享(访问,修改)
            实例变量:每个对象都要有一份,数据各不同(如:name、score、age等)

        4.访问自己类中的类变量,是否可以省略类名不写?

                可以的
            注意:在某个类中访问其他类里的类变量,必须带类名访问。

    三)static修饰成员方法

         成员方法的分类:
            类方法:有static修饰的成员方法,属于类
                类名.类方法名()(推荐)
                对象名.类方法名()(不推荐)
            实例方法:
                没有static修饰的成员方法,属于对象
                对象名.实例方法名()

        1.static修饰成员方法叫什么?如何使用?

            类方法(静态方法)
            属于类,可以直接用类名访问,也可以用对象访问
            类名.类方法名()
            对象名.类方法名()(不推荐)

        2.无static修饰成员方法叫什么?如何使用?

            实例方法(非静态方法)
            属于对象,只能用对象名访问
            对象名.实例方法名()

    补充知识:搞懂main()方法
        是一个类方法
 

        public class hello {public static void main(String[] args) {for(int i=0;i<args.length;i++){System.out.println(args[i]);}}}

    四)static修饰成员方法的应用场景

        1.类方法的应用场景:

             类方法最常见的应用场景是做工具类。

        2.工具类是什么?

            工具类中的方法就是一些类方法,每个方法都是用来完成一个功能的,工具类就是给开发人员共同使用的。

        3.使用工具类来设计工具类有啥好处?

            提高了代码的复用性;调用方便,提高了开发效率。

        4.案例导学      (util3)
        5.为什么工具类的方法要用类方法,而不能用实例方法?

            因为类方法可以直接用类名访问,而实例方法只能用对象名访问。
            实例方法需要创建对象来调用,此时对象只是为了调用方法,对象占内存,这样会浪费内容。
            即实例方法需要创建对象来调用,会浪费内存。
        多学一招:因为工具类没有创建对象的需求,建议将工具类的构造进行私有。则不能实例化对象,只能通过类名调用方法。

        6.工具类定义时有什么要求?

                工具类不需要创建对象,建议将工具类的构造器私有化。

    五)static的注意事项

            使用类方法、实例方法的几点注意事项
            类方法中可以直接访问类的成员,不可以直接访问实例成员
            实例方法中既可以访问类成员,也可以直接访问实例成员。
            实例方法中可以出现this关键字,类方法中不可以出现this关键字。

    六)static的应用知识   (block5)

 1.代码块

        代码块是类的五大成分之一(成员变量、构造器、方法、内部类、代码块)

            代码块按照有无static修饰,分为两种:
                1)静态代码块:格式
                                static{}
                    特点:;类加载时自动执行,由于类只会加载一次,所以静态代码块也只会执行一次。
                    作用:完成类的初始化,例如:对类变量的初始化赋值。
                   静态代码块在类加载时执行,且只执行一次;构造器在创建对象时执行,每创建一个对象就执行一次。
                2)非静态代码块:格式
                                {}
                     特点:每次创建对象时,执行实例代码块,并在构造器前执行。
                     作用:和构造器一样,都是用来完成对象的初始化的,例如:对实例变量进行初始化赋值。

        2.单例设计模式

                什么是设计模式?
                一个问题通常有n种解法,其中肯定有一种解法是最优的,这个最优的解法被人总结出来了,称之为设计模式。
                设计模式有20多种,对于20多种软件开发种会遇到的问题。
            关于设计模式主要学什么?
                1)解决什么问题?
                2)怎么写?

            单例设计模式
                确保一个类只有一个对象。
                写法:
                    把类的构造器私有
                    定义一个变量记住类的每一个对象。
                    定义一个类方法,返回对象。
                            饿汉式单例:拿对象时,对象早就创建好了。
                                            public class A {
                                                //2.定义一个类变量,记住类的一个对象
                                                private static A a = new A();
                                                //1.私有类的构造器
                                                private A(){
                                                }
                                                //3.定义一个方法,返回类的对象
                                                public static A getObject(){
                                                    return a;
                                                }
                                            }
            单例模式的应用场景、有啥好处?
                任务管理器、获取运行时对象
                在这些业务场景下,使用单例模式,可以避免浪费内存。
                            懒汉式单例:拿对象时,才开始创建对象。。
                            写法:
                                把类的构造器私有
                                定义一个类变量用于存储对象。
                                提供一个类方法,保证返回的是同一个对象。
                                        public class B {
                                            //2.定义一个类变量,用于存储这个类的一个对象
                                            private static B b;
                                            //1.把类的构造器私
                                            private B() {{
                                            }
                                            }
                                            //定义一个类方法,这个方法要保证第一次创建一个对象,后面调用时都会返回这个对象。
                                            public static B getInstance() {
                                                if (b == null) {
                                                    System.out.println("第一次创建对象!");
                                                    b = new B();
                                                }
                                                return b;
                                            }
                                        }
            单例:对于经常使用的写饿汉式,不经常用的懒汉式。

二、继承

    1.什么是继承?继承后有啥特点

        继承就是使用extends关键字,让一个类和另一个类建立起的一种父子关系。
        字类可以继承父类的非私有的成员。

    2.带继承关系的类,java会怎么创建它的对象?对象创建出来后,可以直接访问哪些成员?

         带继承关系的类,Java会用类和其父类,这多张设计图一起创建类的对象。
        对象能直接访问什么成员,是由子父类这多张设计图共同决定的,这张设计图对外暴露了什么成员,对象就可以访问什么成员。

    3.使用继承有啥好处?

        减少了重复代码的编写,提高了代码的复用性。

一)继承的相关注意事项

    1)权限修饰符
    2)单继承、Object类
    3)方法重写
    4)子类中访问其他成员的特点
    5)子类构造器的特点
    6)注意事项小结

    1.权限修饰符   (modifer)

        就是用来限制类中的成员(成员变量、成员方法、构造器、代码块....)能够访问的范围
        private 、 protected 、 public 、缺省...

    2.单继承、Object类   (extendsfeature  继承的特点)

        继承的两个注意事项:
            java是单继承的,Java中的类不支持多继承,但是支持多层继承。
            Object类是所有类的父类(祖宗),所有类都继承了Object类。

    3.方法重写   (override)

        当子类觉得父类的方法不好用,或无法满足自己的需求时,子类可以重写一个方法名称、参数列表一样的方法,去覆盖
        父类的这个方法,这个就是方法重写。
            注意:重写后,方法的访问,java会遵循就近原则。

    4.方法重写是什么?

        子类写了一个方法名称,形参列表与父类某个方法一样的方法会去覆盖父类的该方法

    5.重写方法有哪些注意事项?

        建议加上@Override注解,可以校验重写是否正确,同时可读性好。
        子类重写父类方法时,访问权限必须大于或者等于父类被重写的方法的权限。
        重写的方法返回值类型,必须与被重写方法的返回值一样,或者范围更小。
        私有方法、静态方法不能被重写

    6.子类访问其他成员(成员变量、成员方法)的特点   (access 就近原则  谁近访问谁)

         成员变量:
        当父类、子类、子类中方法都有同名的成员(eg:都叫name)时,子类访问成员的优先级是:
            按照就近原则,在方法中,优先访问自己方法中的,如果想访问子类的成员,需要使用this.name。
            如果想访问父类的成员,需要使用super.name。
        成员方法:
        当子类和父类都有同名的成员方法(eg:都叫getName())时,子类访问方法的优先级是:
            按照就近原则,在方法中,优先访问自己方法中的,如果想访问父类的成员方法,需要使用super.getName()。

    7.子类构造器的特点   (constructor)

        子类构造器的特点:
            子类的全部构造器,都会先调用父类的构造器,再执行自己。

        子类构造器是如何实现调用父类构造器的?
            默认情况下,子类的全部构造器的第一行代码都是super(),它会调用父类的无参构造器。
            如果父类没有无参构造器,则我们必须再子类构造器的第一行手写super(),调用父类的有参构造器。

    8.补充知识:this()调用兄弟构造器   (this)

在任意类的构造器中,是可以通过this(..)去调用该类的其他构造器。
        在一个构造器中,this()和super()不能同时出现。

    9.super(...)调用父类构造器的常见应用场景是什么?

为对象中包含父类这部分的成员变量进行赋值。

    10.this(...)的作用是什么?

 在构造器中调用本类的其他构造器

    11.this(...)和super(...)的使用时需要注意什么?

都必须放在构造器的第一行。
 

相关文章:

  • 全面解析DeepSeek算法细节(2) —— 多令牌预测(Multi Token Prediction)
  • 如何在idea中编写spark程序
  • FDA会议类型总结
  • 排序算法详解笔记(一)
  • 生物化学笔记:神经生物学概论03 脑的高保真数字信号 突触可塑性
  • jquery解决谷歌浏览器自动保存加密密码是乱码
  • 每日一题(12)TSP问题的贪心法求解
  • 深度学习篇---抽样
  • 数据库- JDBC
  • LeetCode 热题 100_最小路径和(92_64_中等_C++)(多维动态规划)
  • React:封装一个评论回复组件
  • 使用JDK的数据校验和Spring的自定义注解校验前端传递参数的两种方法
  • 2025吃鸡变声器软件推荐
  • COMEM光纤温度传感器Optocon:可靠稳定的温度监测方案
  • (002)Excel 使用图表,统计
  • 阅读MySQL实战45讲第11天
  • PCL实时动态加载显示点云功能以及laslib配置
  • Python项目-支持自然语言处理
  • 湖北理元理律师事务所:债务优化的法律机制与民生实践
  • 【阿里云大模型高级工程师ACP习题集】2.6.用插件扩展答疑机器人的能力边界
  • 文化润疆|让新疆青少年成为“小小博物家”
  • 挤占学生伙食费、公务考察到景区旅游……青岛通报5起违规典型问题
  • 淮安四韵·名城新章: 网络名人领略“运河之都”魅力
  • 餐饮店直播顾客用餐,律师:公共场所并非无隐私,需对方同意
  • 早睡1小时,变化有多惊人?第一个就没想到
  • 黄仁勋访华期间表示希望继续与中国合作,贸促会回应