1.5.1抽象java入门

前言:

1.5.0版本中,我们熟练使用Git三个可视化操作(签出,提交,对比),再加上1.4.0版本的新建,总计使用四个Git可视化操作;对java编程的学习,总结,更进一步验证了编程语言和自然语言极高的相识程度,即文字是文章的基础,java基础是java生态的基础(第一个接触的框架SpringBoot)

本期内容:

1:利用工具更轻松的分辨静态方法(类函数)和方法(函数)的区别

2:面向对象编程

3:java文件分类

1:利用工具更轻松的分辨静态方法(类函数)和方法(函数)的区别

先回顾一下,方法和静态方法

方法公式3.0版本

方法 = 权限修饰符 + 返回值类型 + 函数名 + 参数 + 函数体

静态方法 = 权限修饰符 + 类修饰符 + 返回值类型 + 函数名 + 参数 + 函数体

区分是否为静态方法(函数)的唯一标准,是否被类修饰符修饰

一伙静态方法,一伙静态函数,一伙类方法,一伙类函数,乱七八糟,好烦好闹心~~~

Q:方法与函数

A:方法和函数两个名词,这两个名词所描述的操作是相同的,所以在大体上是不需要做太大区分

Q:静态和类是什么关系

A:静态修饰的是类的内容,所以作者我为了更直接点,直接管静态方法为类方法

如何利用IDEA功能优雅的区分呢?

假设,你是IDEA的一位开发人员,你的上司给你一个任务

在提示框上要让用户知道他调用的是静态的方法还是非静态的方法

真的假的,让我来做?

跟着我们不一样的java入门的人,肯定知道,怎么写

我又没让你用代码实现,用自然语言将逻辑理清

第一步:获取用户输入的类

第二步:根据获取类的地址,获得类的全部内容

第三步:判断这些内容是否带有类修饰符,如果有,你打算怎么让用户知道

高亮?加粗?不一样的颜色?还是什么?让我们看看idea开发人员是怎么做的

 验证:

第一步:新建一个java类

第二步:

public class user {

    public void NoStatic() {
        System.out.println("我不是静态方法");
    }

    public static void IsStatic() {
        System.out.println("我是静态方法");
    }
}

第三步调用:

可以直接通过类调方法,这也是为什么我管它叫——类方法

我们通过类去调用非静态方法时,是会报错的

2:面向对象编程

类方法是类本身的属性,在最开始的文章中,有一种特殊的方法(函数),每一个类里面都有它,它的名字叫什么?

复习一遍 —— 构造函数(construct-or) 即构造,执行

构造函数 = 公共权限 + 类名 + 参数 + 函数体

执行构造对象的函数(方法)

这个函数的作用是构造对象,那么没有Static修饰符的方法那都属于对象

类方法,我们可以直接使用类名调用

方法呢?方法需要对象才能调用,可是创建对象需要构造方法,构造方法怎么调用呢?

只要知道构造方法怎么调用,自然而然的方法就知道怎么被调用

先学会第一种方法,—— 利用new关键词进行构造方法的调用

我们的对象没办法调用类方法

那么到这里,你应该就知道IDEA开发是怎么做的了,如下(极简版)

心细的人会发现

代码有粗细,下面的equals,toString这些方法我们没有定义怎么有的,右边的灰色字体void又是什么?

先留个坑,提升一下,这些细字体是面向对象中的一个特性,void是函数公式里的一个元素

3.java文件分类

5种,目前我们接触到了两种

总结:为什么要分清类方法和方法的区别,因为后面会去读源码,写源码,能分清这些,你就知道为什么这个地方官方或者作者用了new关键字,而不是直接调用,明明同一个文件里,却看不到别的方法,为什么作者没有用new,也实现了构造对象的方法

面向对象编程,是最能体现编程语言向自然语言发展的核心验证点,在这里我们只提到看对象这一概念,却不知道它有什么用?为什么会出现对象?也没有进行说明

java文件分类,依旧是为了后续读源码做准备,大概在1.8.0版本,我们会开始读源码,读大佬写的源码,去模仿大佬写的源码,去理解分析大佬怎么写源码的

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

部署一台本机的ai智能模型

部署ai模型 1.打开地址搜 https://ollama.com/(开源ai模型网址)下载软件 2.点击安装具有羊驼图标的文件 3.在右下角查看 羊驼图标 4。打开脚本,执行可以切换羊驼安装的位置与环境变量 5.winR 输入cmd,在命令窗口输入ollama命令 如果安装成功…

算法之工程化内容(2)—— Git常用命令

目录 1. git初始化配置 2. 新建仓库 3. 工作区——>暂存区——>本地仓库 4. git reset回退版本 5. 查看差异 git diff 6. 删除文件git rm 7. .gitignore 8. vscode操作git 9. git分支、合并和删除 10. 解决合并冲突 11. 回退和rebase 12. 添加远程仓库 参考链接&#xff…

Web 性能入门指南-1.5 创建 Web 性能优化文化的最佳实践

最成功的网站都有什么共同点?那就是他们都有很强的网站性能和可用性文化。以下是一些经过验证的有效技巧和最佳实践,可帮助您建立健康、快乐、值得庆祝的性能文化。 创建强大的性能优化文化意味着在你的公司或团队中创建一个如下所示的反馈循环&#xff…

C语言:指针详解(5)

目录 一、sizeof()函数和strlen()函数的对比 1.sizeof()函数 2.strlen()函数 3.sizeof()函数和strlen()函数的对比 二、数组和指针笔试试题解析 1.一维数组 2.字符数组 (1)代码1 (2)代码2 (3)代码…

pytorch训练的时候 shm共享内存不足,导致训练停止

1.查看shm情况 df -h /dev/shm内存已经满了,因为之前训练多次训练意外停止到shm中的缓存不能及时被清理 2、手动清理shm 依然没被释放 3、查看关联的进程,一个一个kill lsof |grep deletedkill -9 46619 44618 44617 。。。。。4、搞定

vue中父子传递属性值

1、父传子属性值 自定义图库组件 在add.vue中应用tuku组件并给默认值 效果 2、 子传父,逆向赋值 add.vue和第一问中一样 修改tuku组件,传值给add.vue 3、多个传递 效果: 点击两个修改按钮后 4、使用defineModel简化父子传值 其他代码跟…

python作业三

1.使用requests模块获取这个json文件http://java-api.super-yx.com/html/hello.json 2.将获取到的json转为dict 3.将dict保存为hello.json文件 4.用io流写一个copy(src,dst)函数,复制hello.json到C:\hello.json import json import shutilimport requests #使用requests模块获…

OceanBase:引领下一代分布式数据库技术的前沿

OceanBase的基本概念 定义和特点 OceanBase是一款由蚂蚁金服开发的分布式关系数据库系统,旨在提供高性能、高可用性和强一致性的数据库服务。它结合了关系数据库和分布式系统的优势,适用于大规模数据处理和高并发业务场景。其核心特点包括: …

【C/C++积累技巧】实现 连续播放文件图片+逐帧文本显示, 同时 可以按任意键退出(基于easyx小游戏编程)

技巧一、使用 IMAGE数组循环&#xff1a;实现【连续播放图片】 &#xff08;1&#xff09;一张图片如何放映在 图形化窗口上&#xff1a;借用两个函数 #include<graphics.h> // 函数的头文件IMAGE imgMy; // 图形变量 loadimage(&imgMy, "写入你想显示的图片路…

软件开发面试题(C#语言,.NET框架)

1. 解释什么是委托&#xff08;Delegate&#xff09;&#xff0c;并举例说明它在C#中的用法。 委托是一种引用类型&#xff0c;它可以用于封装一个或多个方法。委托对象可以像方法一样调用&#xff0c;甚至可以用于创建事件处理程序。委托是C#中实现事件和回调函数的重要机制。…

Hive表【汇总】

提前必备 1、内部表和外部表的区别 概念讲解&#xff1a; 外部表&#xff1a;1、存放他人给予自己的数据2、当我们删除表操作时&#xff0c;会将表的元数据删除&#xff0c;保留数据文件 内部表&#xff1a;1、存放已有的数据2、当我们删除表操作时&#xff0c;会将表的元数据…

Unity 优化合集

1️⃣ 贴图优化 1. Read/Write Enable 这个属性勾选后允许你在运行时读取和写入纹理数据&#xff0c;这对于需要实时生成内容或者需要动态修改纹理的场合非常有用但在大部分情况下这是不必要的。如果打开这个属性&#xff0c;会使运行时贴图大小翻倍&#xff0c;内存中会额外…

缓存与分布式锁

一、缓存 1、缓存使用 为了系统性能的提升&#xff0c;我们一般都会将部分数据放入缓存中&#xff0c;加速访问。 适合放入缓存的数据有&#xff1a; 即时性、数据一致性要求不高的&#xff1b;访问量大且更新频率不高的数据。 在开发中&#xff0c;凡是放入缓存中的数据我们都…

Git 命令行快速入门

前言 &#xff08;1&#xff09;新手个人建议使用TortoiseGit这类图形化界面来上手学习。 &#xff08;2&#xff09;如果一定需要用命令行进行操作&#xff0c;可以按照B站&#xff1a;程式与网页开发者必备技能&#xff01;Git 和 GitHub 零基础快速上手&#xff0c;轻松掌握…

构造与操作链栈

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言​📝心态决定高度,细节决定成败! 链栈是数据结构中栈的一种实现方式,它利用链表(通常是单链表)来存储栈中的元…

【触摸屏】【红十字会学习系统】功能模块:视频 + AI拍照合成

项目背景 提升公众急救能力&#xff1a;确保每个人都能在紧急情况下采取正确的急救措施&#xff0c;减少伤害&#xff0c;挽救生命。培养人道主义价值观&#xff1a;通过教育和培训&#xff0c;传播红十字精神&#xff0c;促进社会对弱势群体的关注与支持。建立社区响应网络&a…

1. InternLM - 入门岛

第1关 Linux 基础知识 1. 完成SSH连接与端口映射并运行hello_world.py SSH连接配置 # wsl2中生成密钥对&#xff08;~/.ssh/id_rsa, ~/.ssh/id_rsa.pub&#xff09; ssh-keygen -t rsa# 将id_rsa.pub在internStudio作为公钥导入SSH登录 $ ssh -p 38871 rootssh.intern-ai.o…

5.SpringBoot核心源码-启动类源码分析

目录 概述技巧spring boot 如何启动应用程序run方法里面核心逻辑 SpringApplicaiton.run(xxx.class,args)结束 概述 SpringBoot核心源码-启动类源码分析 技巧 如何给外部源码加注释&#xff0c;想要在源码中添加自己的注释&#xff0c;会弹出 file is read only&#xff0c;代…

Java核心技术【二十二】Java的I/O流处理:深入文件读写操作、缓冲流、序列化与NIO

Java的I/O流处理&#xff1a;深入文件读写操作、缓冲流、序列化 在Java编程中&#xff0c;I/O流是处理输入输出操作的基础&#xff0c;特别是在文件读写、网络通信等领域。本文将在前文的基础上&#xff0c;进一步探讨缓冲流、序列化以及NIO&#xff08;New I/O&#xff09;在…

从0开始的STM32HAL库学习2

外部中断(HAL库GPIO讲解) 今天我们会详细地学习STM32CubeMX配置外部中断&#xff0c;并且讲解HAL库的GPIO的各种函数。 准备工作&#xff1a; 1、STM32开发板&#xff08;我的是STM32F103C8T6&#xff09; 2、STM32CubeMx软件、 IDE&#xff1a; Keil软件 3、STM32F1xx/ST…