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

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(...)的使用时需要注意什么?

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/78759.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大前端开发——前端知识渐变分层讲解 利用金字塔原理简化前端知识体系

Web开发基础 核心概念 HTML、CSS和JavaScript&#xff1a;Web开发的三大基石&#xff0c;分别负责结构、样式和行为。 代码管理&#xff1a;随着项目规模扩大&#xff0c;需要将代码拆分成小块&#xff0c;便于维护。 作用域污染&#xff1a;早期所有代码共享全局作用域&…

Mixture-of-Experts(MoE)原理与在DeepSeek中的应用

MoE机制简介 Mixture-of-Experts(MoE,混合专家)是一种“分而治之”的神经网络架构思想。在MoE模型中,存在多个并行的子网络,被称为“专家”。每个专家通常擅长处理特定类型的输入特征或知识片段。而在模型前向计算时,并非激活所有专家参与运算,而是通过一个专门的门控网…

SpringCloud学习笔记

个人学习进度&#xff1a;视频跟敲笔记&#xff08;12天&#xff09; 学习视频&#xff1a;尚硅谷微服务速通&#xff08;7小时左右课程&#xff09; 资源&#xff1a; 1.pdf&#xff1a;微服务pdf&#xff08;课程&#xff09;&#xff1a;https://pan.baidu.com/s/1g_TAuBjQ…

【大模型】Coze AI 智能体工作流从配置到使用实战详解

目录 一、前言 二、工作流介绍 2.1 什么是工作流 2.2 工作流与对话流 2.2.1 两者区别 2.3 工作流节点介绍 2.3.1 工作流节点说明 2.3.2 开始节点与结束节点 2.4 工作流入口 2.4.1 自定义智能体入口 2.4.2 从资源库新增工作流 2.5 工作流使用限制 三、工作流配置与使…

Discord多账号注册登录:如何同时管理多个账户?

Discord是许多人、特别是游戏玩家和社区管理者的重要沟通工具。随着用户需求的增长&#xff0c;越来越多的人开始在Discord上注册多个账号进行管理。例如&#xff0c;个人和工作账号的区分&#xff0c;多个游戏社区的参与&#xff0c;或者通过不同的身份进行更灵活的社交互动。…

前端如何使用Mock模拟数据实现前后端并行开发,提升项目整体效率

1. 安装 Mock.js npm install mockjs --save-dev # 或使用 CDN <script src"https://cdn.bootcdn.net/ajax/libs/Mock.js/1.0.0/mock-min.js"></script>2. 创建 Mock 数据文件 在项目中新建 mock 目录&#xff0c;创建 mock.js 文件&#xff1a; // m…

AimRT 从零到一:官方示例精讲 —— 二、HelloWorld示例.md

HelloWorld示例 官方仓库&#xff1a;helloworld 配置文件&#xff08;configuration_helloworld.yaml​ &#xff09; 依据官方示例项目结构自行编写YAML配置文件 # 基础信息 base_info:project_name: helloworld # 项目名称build_mode_tags: ["EXAMPLE", &quo…

Tauri 跨平台开发指南及实战:用前端技术征服桌面应用(合集-万字长文)

厌倦了笨重的Electron应用&#xff1f;想要构建体积小、性能高、安全可靠的跨平台桌面应用&#xff1f;Tauri将是你的不二之选&#xff01;本教程带你从入门到精通&#xff0c;掌握这个下一代桌面应用开发框架&#xff0c;并通过实战APK分析工具项目&#xff0c;将理论知识转化…

【LeetCode 热题 100】矩阵置零 / 螺旋矩阵 / 旋转图像 / 搜索二维矩阵 II

⭐️个人主页&#xff1a;小羊 ⭐️所属专栏&#xff1a;LeetCode 热题 100 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 矩阵矩阵置零螺旋矩阵旋转图像搜索二维矩阵 II 矩阵 矩阵置零 矩阵置零 用两个数组分别标记行和列&#xff0c;判断…

JavaScript进阶(三十一): === 与 == 比较运算符

文章目录 一、前言二、严格相等运算符 ()三、宽松相等运算符 ()四、推荐做法五、特殊情况 一、前言 在 JavaScript 中&#xff0c; 和 都是比较运算符&#xff0c;但它们在比较时有重要区别&#xff1a; 二、严格相等运算符 () 不进行类型转换只有当两个操作数的值和类型都…

HTML与安全性:XSS、防御与最佳实践

HTML 与安全性&#xff1a;XSS、防御与最佳实践 前言 现代 Web 应用程序无处不在&#xff0c;而 HTML 作为其基础结构&#xff0c;承载着巨大的安全责任。跨站脚本攻击&#xff08;XSS&#xff09;仍然是 OWASP Top 10 安全威胁之一&#xff0c;对用户数据和网站完整性构成严…

安达发|破解医疗器械多BOM困局:APS生产计划排产软件解决方案

在医疗器械设备制造行业&#xff0c;生产计划与排程&#xff08;Advanced Planning and Scheduling, APS&#xff09;系统的应用至关重要。由于医疗器械行业具有严格的法规要求&#xff08;如FDA、ISO 13485&#xff09;、复杂的多级BOM&#xff08;Bill of Materials&#xff…

组件轮播与样式结构重用实验

任务一&#xff1a;使用“Swiper 轮播组件”对自行选择的图片和文本素材分别进行轮播&#xff0c;且调整对应的“loop”、“autoPlay”“interval”、“vertical”属性&#xff0c;实现不同的轮播效果&#xff0c;使用Swiper 样式自定义&#xff0c;修改默认小圆点和被选中小圆…

【Stable Diffusion】文生图进阶指南:采样器、噪声调度与迭代步数的解析

在Stable Diffusion文生图(Text-to-Image)的创作过程中,采样器(Sampler)、噪声调度器(Schedule type)和采样迭代步数(Steps)是影响生成效果的核心参数。本文将从技术原理、参数优化到实践应用,深入剖析DPM++ 2M采样器、Automatic噪声调度器以及采样步数的设计逻辑与协…

第一天 车联网定义、发展历程与生态体系

前言 车联网&#xff08;Internet of Vehicles, IoV&#xff09;作为物联网&#xff08;IoT&#xff09;在汽车领域的延伸&#xff0c;正在彻底改变人们的出行方式。无论是自动驾驶、远程诊断&#xff0c;还是实时交通优化&#xff0c;车联网技术都扮演着核心角色。本文将从零…

foc控制 - clarke变换和park变换

1. foc控制框图 下图是foc控制框图&#xff0c;本文主要是讲解foc控制中的larke变换和park变换clarke变换将 静止的 a b c abc abc坐标系 变换到 静止的 α β αβ αβ坐标系&#xff0c;本质上还是以 定子 为基准的坐标系park变换 则将 α β αβ αβ坐标系 变换到 随 转…

软件系统容量管理:反模式剖析与模式应用

在数字化时代&#xff0c;软件系统的重要性日益凸显。随着业务的不断拓展和用户数量的持续增长&#xff0c;软件系统的容量管理成为保障其高效运行的关键因素。《发布&#xff01;软件的设计与部署》第二部分围绕容量展开深入探讨&#xff0c;系统地阐述了容量的定义、范围&…

23种设计模式-行为型模式之解释器模式(Java版本)

Java 解释器模式&#xff08;Interpreter Pattern&#xff09;详解 &#x1f9e0; 什么是解释器模式&#xff1f; 解释器模式是一种行为型设计模式&#xff0c;主要用于解释和执行语言的语法规则。它定义了一个解释器来处理特定的语言句法&#xff0c;并通过一个抽象语法树来…

基于Springboot + vue + 爬虫实现的高考志愿智能推荐系统

项目描述 本系统包含管理员和学生两个角色。 管理员角色&#xff1a; 个人中心管理&#xff1a;管理员可以管理自己的个人信息。 高校信息管理&#xff1a;管理员可以查询、添加或删除高校信息&#xff0c;并查看高校详细信息。 学生管理&#xff1a;管理员可以查询、添加或…

五种机器学习方法深度比较与案例实现(以手写数字识别为例)

正如人们有各种各样的学习方法一样&#xff0c;机器学习也有多种学习方法。若按学习时所用的方法进行分类&#xff0c;则机器学习可分为机械式学习、指导式学习、示例学习、类比学习、解释学习等。这是温斯顿在1977年提出的一种分类方法。 有关机器学习的基本概念&#xff0c;…