韩顺平java基础学习笔记一

2023-11-07

面向对象编程(基础部分)

7.1类和对象

#7.1.5类与对象的关系示意图
在这里插入图片描述#7.1.6类与对象的关系示意图
在这里插入图片描述
7.1.8类和对象的区别和联系

  1. 类是抽象的,概念的,代表一类事物,比如人类,猫类…, 即它是数据类型.
  2. 对象是具体的,实际的,代表一个具体事物, 即 是实例.
  3. 类是对象的模板,对象是类的一个个体,对应一个实例.

7.1.9对象在内存中存在形式(重要的)必须搞清楚
在这里插入图片描述7.1.10 属性/成员变量/字段

  1. 从概念或叫法上看: 成员变量 = 属性 = field(字段) (即 成员变量是用来表示属性的,授课中,统一叫 属性)
  2. 属性是类的一个组成部分,一般是基本数据类型,也可是引用类型(对象,数组)。比如我们前面定义猫类 的 int age 就
    是属性
    注意事项和细节说明
    在这里插入图片描述
    7.1.11 如何创建对象
    在这里插入图片描述
    7.1.12 如何访问属性
    基本语法:对象名.属性名;
    案例演示赋值和输出
    cat.name ;
    cat.age;
    cat.color;

7.1.13 类和对象的内存分配机制
在这里插入图片描述
在这里插入图片描述

7.2 成员方法

7.2.3方法的调用机制原理:(重要!-示意图!!!)
在这里插入图片描述
7.2.5成员方法的好处

  1. 提高代码的复用性
  2. 可以将实现的细节封装起来,然后供其他用户来调用即可

7.2.6成员方法的定义
在这里插入图片描述

7.2.7注意事项和使用细节
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.3 成员方法传参机制(非常非常重要)

7.3.1基本数据类型的传参机制
在这里插入图片描述

public class MethodParameter01 { 
	//编写一个 main 方法 
	public static void main(String[] args) { 
		int a = 10; 
		int b = 20; //创建 AA 对象 名字 obj 
		AA obj = new AA(); 
		obj.swap(a, b); //调用 swap 
		System.out.println("main 方法 a=" + a + " b=" + b);//a=10 b=20 
	} 
}
class AA { 
	public void swap(int a,int b){ 
		System.out.println("\na 和 b 交换前的值\na=" + a + "\tb=" + b);//a=10 b=20 
		//完成了 a 和 b 的交换 
		int tmp = a; 
		a = b; 
		b = tmp; 
		System.out.println("\na 和 b 交换后的值\na=" + a + "\tb=" + b);//a=20 b=10 
	} 
}

在这里插入图片描述
7.3.2引用数据类型的传参机制

  1. 结论及示意图
    引用类型传递的是地址(传递也是值,但是值是地址),可以通过形参影响实参
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

7.4 方法递归调用(非常非常重要,比较难)

略(下次再补)

7.5 方法重载(OverLoad)

7.5.1基本介绍
java 中允许同一个类中,多个同名方法的存在,但要求 形参列表不一致!
比如:System.out.println(); out 是 PrintStream 类型

7.5.2重载的好处

  1. 减轻了起名的麻烦
  2. 减轻了记名的麻烦

7.5.4注意事项和使用细节

7.6 可变参数

7.6.1基本概念
java 允许将同一个类中多个同名同功能但参数个数不同的方法,封装成一个方法。
就可以通过可变参数实现

7.6.2基本语法
访问修饰符 返回类型 方法名(数据类型… 形参名) {
}
7.6.3快速入门案例(VarParameter01.java)
看一个案例 类 HspMethod,方法 sum 【可以计算 2 个数的和,3 个数的和 , 4. 5,

public class VarParameter01 { 
	//编写一个 main 方法 
	public static void main(String[] args) { 
		HspMethod m = new HspMethod(); 
		System.out.println(m.sum(1, 5, 100)); //106 
		System.out.println(m.sum(1,19)); //20 
	} 
}
class HspMethod { 
	//可以计算 2 个数的和,3 个数的和 , 4. 5, 。。
	//老韩解读
	//1. int... 表示接受的是可变参数,类型是 int ,即可以接收多个 int(0-多) 
	//2. 使用可变参数时,可以当做数组来使用 即 nums 可以当做数组 
	//3. 遍历 nums 求和即可 
	public int sum(int... nums) { 
		//System.out.println("接收的参数个数=" + nums.length); 
		int res = 0; 
		for(int i = 0; i < nums.length; i++) { 
			res += nums[i]; 
		}
		return res; 
	} 
}

7.6.4注意事项和使用细节
在这里插入图片描述

7.7 作用域

7.7.1基本使用
在这里插入图片描述
7.7.2注意事项和细节使用
在这里插入图片描述

7.8 构造方法/构造器

7.8.2基本语法
在这里插入图片描述

7.8.3基本介绍
在这里插入图片描述

7.8.5注意事项和使用细节
在这里插入图片描述

7.9 对象创建的流程分析

7.9.1看一个案例
在这里插入图片描述
在这里插入图片描述

7.10 this 关键

7.10.2 深入理解 this
在这里插入图片描述
7.10.3 this 的注意事项和使用细节
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

韩顺平java基础学习笔记一 的相关文章

随机推荐

  • angular2.0最新版环境搭建与常见问题

    第一步 安装Node js npm 安装Node js的时候自动就安装了npm 第二部 安装npm 由于npm官网镜像访问太慢 我们使用淘宝的npm镜像 在node命令窗口 windows的cmd linux的终端 npm install
  • 八数码深度优先搜索_Part 05:深度与广度优先搜索

    这节课重点学习深度优先搜索算法 简称为 DFS 和广度优先搜索算法 简称为 BFS DFS 和 BFS 经常在算法面试题当中出现 在整个算法面试知识点中所占的比重非常大 应用最多的地方就是对图进行遍历 树也是图的一种 深度优先搜索 Dept
  • 转:【Python3网络爬虫开发实战】6.4-分析Ajax爬取今日头条街拍美图

    摘要 本节中 我们以今日头条为例来尝试通过分析Ajax请求来抓取网页数据的方法 这次要抓取的目标是今日头条的街拍美图 抓取完成之后 将每组图片分文件夹下载到本地并保存下来 1 准备工作 在本节开始之前 请确保已经安装好requests库 如
  • Android Studio 太卡解决方法

    第一种情况 C盘快要满了 自行解决 第二种 修改Java 虚拟机启动时的参数 用于限制最大堆内存 在Android Studio Help gt Edit Custom VM Option 打开 在这里加上 Xmx2g 或者 Xmx4g 如
  • 【机器人学】机器人开源项目KDL源码学习:(2)牛顿拉普森迭代法求机器人的数值解

    对于串联机器人来说 求逆解的难度要大于求正解 市面上的工业机器人一般是利用的是利用解析法求封闭解 机器人有封闭解是有条件的 Pieper法则 另一种求逆解的方法是利用迭代法求数值解 适用于不满足Pieper法则的构型 特别适用于运动学冗余的
  • K8s ❉ 报错cannot stat ‘/etc/kubernetes/admin.conf’

    现象 报错提示 cannot stat etc kubernetes admin conf No such file or directory 解决方式 从master节点拷贝过来 master节点执行 root master scp et
  • 相机标定精度研究

    张建贺实验设计 1 外参重复性精度测试 同内参 不同外参特征点 9选择4 组合 1 外参几乎没有什么重复性误差 只要4对都正确 则刚性匹配基本正确 解释 激光点云到相机 转换本身的刚性匹配 而相机坐标系到图像坐标系是非刚性匹配 不同内参 同
  • pytorch分布式卡住

    在一台 A100 的实验室用单机多卡的方式跑 MoCoGAN HD 时 发现其在跑到 main worker 打完这行的 log 之后就卡住不动 手动 Ctrl C Options G step 5 batchSize 4 beta1 0
  • 如何搭建一个大数据平台:从新项目到成熟阶段

    在业务增涨过程中 每个企业不知不觉积累积累了一些数据 无论数据是多是少 企业都希望让 数据说话 通过对数据的采集 存储 分析 计算最终提供对业务有价值信息 此时 大数据平台的搭建就是企业面临的问题 搭建大数据平台有哪些思路 怎么样的搭建路径
  • LSTM lstm时间序列预测 用电量预测 完整代码数据

    视频讲解 LSTM lstm用工业用电量预测 时间序列预测 完整代码数据 哔哩哔哩 bilibili 代码 导包 import pandas as pd import numpy as np import tqdm import datet
  • 算法(62)-荷兰国旗-快排(详解+代码)

    问题1 问题二 代码 l 左值下标 r 右值下标 q 区分值 int partition int arr int l int r int p int less l 1 lt 区的右边界 下标 初始值 int more r 1 gt 区的左边
  • Heartbeat+crm+pingd+Drbd+NFS组合小型的集群

    Heartbeat crm pingd Drbd NFS组合小型的集群 一 网络结构图 二 准备工作 系统 CentOS release 5 3 Final Linux HA1 2 6 18 128 el5 1 SMP Wed Jan 21
  • Vite快速上手

    认识 Vite Vite 法语意为 快速的 发音 vit 是一种新型前端构建工具 能够显著提升前端开发体验 由两部分组成 一个开发服务器 它基于原生ES模块提供了丰富的内建功能 HMR的速度非常快速 一套构建指令 它使用rollup打开我们
  • c++使用proto文件方法简介

    GoogleProtocol Buffers 简称 Protobuf 是 Google 公司内部的混合语言数据标准 它提供一种轻量 高效的结构化数据存储结构 简介 为什么要使用protobuf 1 官方文档中提到一些protobuf的优点
  • vscode 配php环境的正确姿势

    看了很多网上的教程 很乱 很难找到一篇好的文章 经过多重筛选以及我的亲身实践 终于找到了一个很好地办法 因为本人耐心比较有限 写的很不详细 都是一些大纲 以及本人遇到的一些问题的总结 遇到啥问题 多百度 多自己动手试试吧 搭环境这个东西 烦
  • Listary 文件搜索浏览增强工具

    Listary介绍及升级 Listary简介 Listary下载 Listary安装 Listary使用 Listary 升为专业版 Listary Pro Listary简介 Listary是一款强大的全盘文件搜索 软件启动效率工具 双击
  • h5页面做微信公众号分享,一直出现无效签名,错误码:63002,invalid signature

    刚接手参与一个h5页面的项目 需要分享到微信 能看到数据正常的写入 但是偏偏分享出去就没有了设置好的标题 描述 和图片 打开的链接也是自己分享时所在的页面url 期间一直有报无效签名的错 不管是用原生微信还是插件去写 都一样 找了两天都没找
  • mysql中常见的聚合函数

    1 聚合函数的介绍 聚合函数又叫组函数 通常是对表中的数据进行统计和计算 一般结合分组 group by 来使用 用于统计和计算分组数据 常用的聚合函数 count col 表示求指定列的总行数 max col 表示求指定列的最大值 min
  • VS Code常用快捷键

    1 删除一行 快捷键 ctrl shift K 光标停在要删除的行 然后按下ctrl shift K即可删除该行 2 选定多个相同的单词 快捷键 ctrl d 先双击选定一个单词 然后按下 ctrl d 可以往下依次选择相同的单词 3 快速
  • 韩顺平java基础学习笔记一

    目录 面向对象编程 基础部分 7 1类和对象 7 2 成员方法 7 3 成员方法传参机制 非常非常重要 7 4 方法递归调用 非常非常重要 比较难 7 5 方法重载 OverLoad 7 6 可变参数 7 7 作用域 7 8 构造方法 构造