day10_面向对象基础
今日内容
零、 复习昨日
一、面向对象的概念
二、面向对象编程
三、内存图
零、 复习昨日
见晨考题
每日一数组题
写一个方法 用于合并两个int类型的数组 合并法则如下
{1,2,5,8,9}{1,3,0}---->{1,2,5,8,9,1,3,0}
package com.qf.array;import java.util.Arrays;/*** --- 天道酬勤 ---** @author QiuShiju* @desc*/
public class Homework {/*** 写一个方法 用于合并两个int类型的数组 合并法则如下* {1,2,5,8,9}{1,3,0}---->{1,2,5,8,9,1,3,0}*/public static void main(String[] args) {concat();}// 合并public static void concat() {int[] arr1 = {1,2,5,8,9};int[] arr2 = {1,3,0};// 创建新数组int[] arr3 = new int[arr1.length + arr2.length];System.out.println(Arrays.toString(arr3 ) );// 手动拷贝// for (int i = 0; i < arr3.length; i++) {//// if(i < arr1.length) {// // 取出arr1中的元素// arr3[i] = arr1[i];// } else {// arr3[i] = arr2[i - arr1.length];// }// }// 工具拷贝System.arraycopy(arr1,0,arr3,0,arr1.length);System.arraycopy(arr2,0,arr3,arr1.length,arr2.length);System.out.println(Arrays.toString(arr3 ) );}
}
一、面向对象的概念
Java是一门面向对象的编程语言.
补充: c语言面向过程 c++ 半面向对象半面向过程
面向过程编程
开发过程中的所有细节都要编写.
假设: 使用一台电脑敲代码. 其中所有零件都需要自己去造.
面向对象编程
假设: 使用一台电脑敲代码. 找到卖电脑的人,告诉我需要一台电脑,商家就给我一台电脑,可以直接使用. (学会当老板,使唤人)
把大象装进冰箱怎么实现?
什么是类?
类: 人以类聚,一类商品
类: 类一组具有相同属性和行为的对象的集合.
神仙类;;;;;手机类
什么是对象?
对象: 将类实例化的一个具体体现.
对象能将属性和行为具体表现出来.
太上老君;;;;;手里正在拿的那个手机
什么是属性?
属性: 类的一些特点/特征
年龄非常大,不会死 ;;;; 品牌,重量,价钱,颜色等
什么是行为?
行为:就是方法,对象能做的动作
炼丹;;;; 发短信,打电话,玩游戏,聊天
总结
以上四个是什么关系?
- 类中有属性和方法
- 对象由类创建出来,对象内部有它自己具体的属性和方法
- 对象可以将属性和行为表现出来
二、面向对象编程
利用上面这些知识,完成面向对象编程(OOP)
2.1 类的定义
以手机为例,完成编程
package com.qf.oop;/*** --- 天道酬勤 ---** @author QiuShiju* @desc 手机类*/
public class Phone {// 属性定义:// [访问修饰符] 数据类型 变量名;// 访问修饰符,可写可不写String brand; // 品牌double price; // 价钱String color; // 颜色int memory; // 内存/** String brand; 属性后要不要设置值?* 不加值String brand; 这个手机类的这个属性不固定* 加值 String brand = "华为"; 这个手机类型品牌属性固定,* 意味着后面通过手机类创建出的手机对象的品牌属性直接就是"华为"* ----------------------------------* 其实属性设置不设置值,就是一个变量默认值的问题*/// 方法(今天往后类中的方法不要加static)// (自己写练习题时加static)public void call() {System.out.println("打电话" );}public void play() {System.out.println("打游戏");}
}
练习: 车类
package com.qf.oop;/*** --- 天道酬勤 ---** @author QiuShiju* @desc 类中包含属性和方法* 类的成员有属性和方法** 类就将相当于模板* 对象就是根据模板创建出的实例*/
public class Car {// 成员属性String brand;double price;String color;String num;// 成员方法public void run(){System.out.println("跑" );}public void takePeople() {System.out.println("载人" );}public void didi() {System.out.println("滴滴" );}
}
2.2 创建对象
创建对象又叫实例化
public static void main(String[] args) {// 创建对象的语法// 类名 对象名 = new 类名();Phone phone = new Phone();// 数据类型 变量名 = 值;// int[] arr = new int[3];}
2.3 使用对象
使用对象就是创建对象,使用对象内部的属性和方法
package com.qf.oop;/*** --- 天道酬勤 ---** @author QiuShiju* @desc*/
public class TestOOP {/*** 主方法中测试*/public static void main(String[] args) {// 创建对象的语法// 类名 对象名 = new 类名();Phone phone = new Phone();// 数据类型 变量名 = 值;// int[] arr = new int[3];// 使用对象,即使用属性和使用方法/** 使用属性:* 1 获得属性值* 数据类型 变量名 = 对象名.属性;* (刚创建的对象内的属性都是该数据类型的默认值)* 2 设置属性值* 对象名.属性 = 值;*/// 属性取值double price = phone.price;System.out.println("手机的价格"+price );String brand = phone.brand;System.out.println("手机的品牌:"+brand );String color = phone.color;System.out.println("手机的颜色:"+color );int num = phone.memory;System.out.println("手机内存"+num+"G" );// 属性赋值phone.brand = "HUAWEI";phone.price = 2999.0;phone.color = "黑曜石";phone.memory = 128;// 再次取值看效果double price2 = phone.price;System.out.println("手机的价格"+price2 );String brand2 = phone.brand;System.out.println("手机的品牌:"+brand2 );String color2 = phone.color;System.out.println("手机的颜色:"+color2 );int num2 = phone.memory;System.out.println("手机内存"+num2+"G" );// =================================================// 使用方法,就是对象调用方法,让方法执行// 对象名.方法名();phone.call();phone.play();}
}
练习: 创建车的对象,调用属性,调用方法
public static void main(String[] args) {// 对象创建Car car = new Car( );// 取出属性System.out.println(car.price );System.out.println(car.color );System.out.println(car.brand );System.out.println(car.num );// 属性赋值car.price = 190000;car.brand = "BYD";car.color = "玫瑰红";car.num = "豫A66666";System.out.println(car.price );System.out.println(car.color );System.out.println(car.brand );System.out.println(car.num );// 调用方法car.run();car.takePeople();car.didi();}
三、内存图
以创建对象过程画图.
凡是new,都会在内存
开辟空间,创建对象,会有地址值
在这同时,对象内部的属性和方法会初始化,赋默认值
完成对象创建,将地址值赋值给对象名
后续通过对象.属性找到堆中的对象的属性给其赋值
后续通过对象方法找到堆中对象的方法让其进栈执行
一个对象的内存图
一个类创建多个对象
/*** 一个类可以创建出多个对象* 每个对象内部都有属于自己的属性和方法,对象之间互不影响*/public static void main(String[] args) {// 创建1个对象Car car = new Car();car.brand = "玛莎";System.out.println(car.brand );// 再创建1个Car car2 = new Car();car2.brand = "劳斯莱斯";System.out.println(car2.brand );// 再创建Car car3 = new Car();car3.brand = "宾利";System.out.println(car3.brand );}
多个引用(对象名)指向同一个对象
public static void main(String[] args) {// 对象1Car car1 = new Car( );// 对象2Car car2 = new Car();car2.num = "豫A66666";// car2被car1赋值,其实是被背后的地址赋值// 赋值后,car2和car1执行同一个内存对象car2 = car1;car1.num = "豫A88888";System.out.println(car1 );System.out.println(car1.num );System.out.println("--------" );System.out.println(car2 );System.out.println(car2.num );}
作业
写12生肖类
完成作业pdfT10,T11
复习(看每天笔记大纲,每天昨天题抽1-2题再重复)
预习(下一周全是面向对象(构造方法,局部变量成员变量,this super static, 封装,继承,多态,抽象,接口))
相关文章:
day10_面向对象基础
今日内容 零、 复习昨日 一、面向对象的概念 二、面向对象编程 三、内存图 零、 复习昨日 见晨考题 每日一数组题 写一个方法 用于合并两个int类型的数组 合并法则如下 {1,2,5,8,9}{1,3,0}---->{1,2,5,8,9,1,3,0} package com.qf.array;import java.util.Arrays;/*** --- 天…...
电影订票网站的设计与开发
技术:Java、JSP等摘要:随着科技的发展,时代的进步,互联网已经成为了人们生活中不可缺少的一部分,网上购物已然是一种时代的象征。纵观市场,电影行业的发展尤为迅速,电影种类和数量的增多导致客流…...
seata【SAGA模式】代码实践(细节未必完全符合saga的配置,仅参考)
seata SAGA模式: 代码仍然是上一篇AT模式的代码:AT模式 不需要undo_log表 下面开始: 首先,saga模式依靠状态机的json文件来执行整个流程,其中的开始节点的服务即TM,然后状态机需要依靠三张表࿰…...
面试题:Java锁机制
java对象包含了三个部分:对象头,实例数据和对齐填充。对象头又存放了:markWord和class point。classpoint :指向方法区,当前对象的类信息数据。markword:存储了很多和当前对象运行时的数据:例如…...
Springboot Web开发
文章目录一. 静态资源访问1. 配置静态资源访问前缀2. 修改默认静态资源存放目录3. Webjars4. 欢迎页支持5. 自定义Favicon二. 请求处理1. 路径变量2. 请求头处理3. 查询字符串处理4. 获取Cookie的值5. 获取请求体的值6. 获取请求域中的数据7. 矩阵变量一. 静态资源访问 只要静…...
分布式事务 | 使用DTM 的Saga 模式
DTM 简介前面章节提及的MassTransit、dotnetcore/CAP都提供了分布式事务的处理能力,但也仅局限于Saga和本地消息表模式的实现。那有没有一个独立的分布式事务解决方案,涵盖多种分布式事务处理模式,如Saga、TCC、XA模式等。有,目前…...
错误代码0xc0000001要怎么解决?如何修复错误
出现错误代码0xc0000001这个要怎么解决?其实这个的蓝屏问题还是非常的简单的,有多种方法可以实现 解决方法一 1、首先使用电脑系统自带的修复功能,首先长按开机键强制电脑关机。 注:如果有重要的资料请先提前备份好,…...
为什么 HTTP PATCH 方法不是幂等的及其延伸
幂等性 首先来看什么是幂等性,根据 rfc2616(Hypertext Transfer Protocol – HTTP/1.1) 文档第 50 页底部对 Idempotent Methods 的定义: Methods can also have the property of “idempotence” in that (aside from error or expiration issues) the…...
13 Day:实现内核线程
前言:我们昨天完成了内核的内存池以及内存管理程序,今天我们要揭开操作系统多任务执行的神秘面纱,来了解并实现一个多任务的操作系统。 一,实现内核线程 在聊线程之间我们先聊聊处理器吧,众所周之现在我们的CPU动不动…...
GPU服务器安装显卡驱动、CUDA和cuDNN
GPU服务器安装cuda和cudnn1. 服务器驱动安装2. cuda安装3. cudNN安装4. 安装docker环境5. 安装nvidia-docker25.1 ubuntu系统安装5.2 centos系统安装6. 测试docker容调用GPU服务1. 服务器驱动安装 显卡驱动下载地址https://www.nvidia.cn/Download/index.aspx?langcn显卡驱动…...
结构体变量
C语言允许用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体(structre)。 在程序中建立一个结构体类型: 1.结构体 建立结构体 struct Student { int num; //学号为整型 char name[20]; //姓名为字符串 char se…...
Java 多态
文章目录1、多态的介绍2、多态的格式3、对象的强制类型转换4、instanceof 运算符5、案例:笔记本USB接口1、多态的介绍 多态(Polymorphism)按字面意思理解就是“多种形态”,即一个对象拥有多种形态。 即同一种方法可以根据发送对…...
九龙证券|一夜暴跌36%,美股走势分化,标普指数创近2月最差周度表现
当地时间2月10日,美股三大指数收盘涨跌纷歧。道指涨0.5%,标普500指数涨0.22%,纳指跌0.61%。 受国际油价明显上升影响,动力板块领涨,埃克森美孚、康菲石油涨超4%。大型科技股走低,特斯拉、英伟达跌约5%。热门…...
【数据库】 mysql用户授权详解
目录 MySQL用户授权 一,密码策略 1,查看临时密码 2,查看数据库当前密码策略: 二, 用户授权和撤销授权 1、创建用户 2,删除用户 3,授权和回收权限 MySQL用户授权 一,密码策略…...
【性能】性能测试理论篇_学习笔记_2023/2/11
性能测试的目的验证系统是否能满足用户提出的性能指标发现性能瓶颈,优化系统整体性能性能测试的分类注:这些测试类型其实是密切相关,甚至无法区别的,例如几乎所有的测试都有并发测试。在实际中不用纠结具体的概念。而是要明确测试…...
C语言(输入printf()函数)
printf()的细节操作很多,对于现阶段的朋友来说,主要还是以理解为主。因为很多的确很难用到。 目录 一.转换说明(占位符) 二.printf()转换说明修饰符 1.数字 2.%数字1.数字2 3.整型转换字符补充 4.标记 -符号 符号 空格符…...
Zabbix 构建监控告警平台(四)
Zabbix ActionZabbix Macros1.Zabbix Action 1.1动作Action简介 当某个触发器状态发生改变(如Problem、OK),可以采取相应的动作,如: 执行远程命令 邮件,短信,微信告警,电话 1.2告警实验简介 1. 创建告警media type&…...
2004-2019年285个地级市实际GDP与名义GDP
2004-2019年285个地级市实际GDP和名义GDP 1、时间:2004-2019年 2、范围:285个地级市 3、说明:GDP平减指数采用地级市所在省份当年平减指数 4、代码: "gen rgdp gdp if year 2003 gen rgdp gdp if year 2003" re…...
Node.js笔记-Express(基于Node.js的web开发框架)
目录 Express概述 Express安装 基本使用 创建服务器 编写请求接口 接收请求参数 获取路径参数(/login/2) 静态资源托管-express.static(内置中间件) 什么是静态资源托管? express.static() 应用举例 托管多个静态资源 挂载路径前缀…...
力扣sql简单篇练习(十五)
力扣sql简单篇练习(十五) 1 直线上的最近距离 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 SELECT min(abs(p1.x-p2.x)) shortest FROM point p1 INNER JOIN point p2 ON p1.x <>p2.x1.3 运行截图 2 只出现一次的最大数字 2.1 题目内容 2…...
浅谈动态代理
什么是动态代理?以下为个人理解:动态代理就是在程序运行的期间,动态地针对对象的方法进行增强操作。并且这个动作的执行者已经不是"this"对象了,而是我们创建的代理对象,这个代理对象就是类似中间人的角色,帮…...
Idea超好用的管理工具ToolBox(附带idea工具)
文章目录为什么要用ToolBox总结idea管理安装、更新、卸载寻找ide配置、根路径idea使用准备工作配置为什么要用ToolBox 快速轻松地更新,轻松管理您的 JetBrains 工具 安装自动更新同时更新插件和 IDE回滚和降级通过下载补丁或一组补丁而不是整个包,节省维护 IDE 的…...
Spring 中 ApplicationContext 和 BeanFactory 的区别
文章目录类图包目录不同国际化强大的事件机制(Event)底层资源的访问延迟加载常用容器类图 包目录不同 spring-beans.jar 中 org.springframework.beans.factory.BeanFactoryspring-context.jar 中 org.springframework.context.ApplicationContext 国际…...
情人节有哪些数码好物值得送礼?情人节实用性强的数码好物推荐
转瞬间,情人节快到了,大家还在为送什么礼物而烦恼?在这个以科技为主的时代,人们正在享受着科技带来的便利,其中,数码产品也成为了日常生活中必不可少的存在。接下来,我来给大家推荐几款比较实用…...
java中flatMap用法
java中map是把集合每个元素重新映射,元素个数不变,但是元素值发生了变化。而flatMap从字面上来说是压平这个映射,实际作用就是将每个元素进行一个一对多的拆分,细分成更小的单元,返回一个新的Stream流,新的…...
【MySQL Shell】8.9.2 InnoDB ClusterSet 集群中的不一致事务集(GTID集)
AdminAPI 的 clusterSet.status() 命令警告您,如果 InnoDB 集群的 GTID 集与 InnoDB ClusterSet 中主集群上的 GTID 集不一致。与 InnoDB ClusterSet 中的其他集群相比,处于此状态的集群具有额外的事务,并且具有全局状态 OK_NOT_CONSISTENT 。…...
logstash毫秒时间戳转日期以及使用业务日志时间戳替换原始@timestamp
文章目录问题解决方式参考问题 在使用Kibana观察日志排查问题时发现存在很多组的timestamp 数据一样,如下所示 详细观察内部数据发现其中日志数据有一个timestamp字段保存的是业务日志的毫秒级时间戳,经过和timestamp数据对比发现二者的时间不匹配。经…...
【C语言】qsort——回调函数
目录 1.回调函数 2.qsort函数 //整形数组排序 //结构体排序 3.模拟实现qsort //整型数组排序 //结构体排序 1.回调函数 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来…...
8年软件测试工程师经验感悟
不知不觉在软件测试行业,野蛮生长了8年之久。这一路上拥有了非常多的感受。有迷茫,有踩过坑,有付出有收获, 有坚持! 我一直都在软件测试行业奋战, 毕业时一起入职的好友已经公司内部转岗,去选择…...
腾讯云安全组配置参考版
官方文档参考: 云服务器 安全组应用案例-操作指南-文档中心-腾讯云 新建安全组时,您可以选择腾讯云为您提供的两种安全组模板: 放通全部端口模板:将会放通所有出入站流量。放通常用端口模板:将会放通 TCP 22端口(Lin…...
商城网站如何建设/怎样无货源开网店
session超时跳出iframe并跳到登陆页面 在网页编程时,我们经常需要处理,当session过期时,我们要跳到登陆页面让用户登陆,由于我们可能用到IFrame框架,所以我们我登陆页面需要显示在整个页面,而不是一个IFram…...
制作链接的步骤/洛阳搜索引擎优化
设置MyEclipse黑色主题背景 1. 下载 http://eclipsecolorthemes.org/ 看哪个合适直接点击进入, 下载右边的epf 2. 下载完成。。。打开myeclipse。file-import-general-preferences 选择下载的epf主题文件 3. 点击确定. 搞定;转载于:https://www.cnblogs.com/ry123/p/4032184…...
做银行设计有好的网站参考吗/网络营销策划方案模板范文
好课推荐:1.CAD2014:点击查看2.室内CAD:点击查看3.CAD2019:点击查看4.CAD2018:点击查看5.【bim】revit:点击查看6.室内手绘:点击查看7.CAD三维:点击查看8.全屋定制:点击查…...
论文引用网站数据 如何做注释/seo视频教程汇总
EOF是一个计算机术语,为End Of File的缩写,在操作系统中表示资料源无更多的资料可读取。资料源通常称为档案或串流。通常在文本的最后存在此字符表示资料结束。是int类型的宏定义,它扩展为负整数常量表达式(通常为-1)。…...
做私人网站/友情链接推广平台
测试时出现的情况。操作系统:Red Hat ES 5.3(32)MySQL Version:MySQL 5.1.36编译选项:./configure --prefix/usr/local/mysql-5.1.36 --without-comment --without-debug --with-ssl --with-charsetgbk --with-extra-charsetsgb2312,utf8在编…...
wordpress官网主题/没干过网络推广能干吗
1、内部类的使用:(1)定义一个外部类Father,有成员变量name并赋一个初值。(2)定义一个内部类Child,并定义一个getValue()方法,在方法中调用外部类Father的name变量。(3&am…...