Day12 学习分享 - 面向对象
1. 生活中的面向对象
需求: 我想吃烤羊排A. 找一个烧烤店吃1. 选店铺2. 找座位并点餐3. 等待烤制4. 吃5. 结账走人B. 自己做着吃1. 买羊排, 买材料2. 准备材料3. 做羊排, 放入烤箱4. 取出5. 吃6. 洗锅洗碗
生活中面向对象和面向过程面向对象:找合适的人做合适的事面向过程:亲力亲为, 自力更生, 所有的过程都是经历
2. 类和对象
类 | 对象 |
---|---|
人类 | 川普, 奥巴马, 普京 |
狗类 | 王可可, 高飞, 史努比 |
手机类 | 我的华为Mate 30Pro, 我曾经的Iphone8Plus |
电脑类 | 我的小米游戏本, 我曾经的ThinkPad |
类:对于一类事物的统称, 包含对于属性描述和行为描述以人类为例:属性描述:身高, 体重, 样貌....行为描述:吃饭, 睡觉, 上班, 学习, 游戏....对象:具体的, 独立的, 唯一的个体
3. Java中定义类的格式【重点】
3.1 格式分析
格式:class 类名 {属性描述;行为描述;}类名:要求符合大驼峰命名法, 见名知意类名这里可以认为是一个数据类型名, 自定义数据类型属性描述:描述当前类有哪些属性例如:人类的身高体重年龄姓名...行为描述:描述当前类有哪些行为例如:人类的吃饭行为, 睡觉行为, 游戏行为...
3.2 自定义完成Person类
/**
* 自定义Person类, 人类
* @author Dream
*/
class Perosn {/* 属性描述 【成员变量 Field】*/// 姓名属性描述// String 是字符串类型, name成员变量String name;// 年龄描述// int 是整数数据类型, age成员变量int age;// 性别描述// char 是字符数据类型, gender成员变量char gender;/* 行为描述 【成员方法 Method】*/// 吃饭行为描述public void eat(String food) {System.out.println("吃" + food);}// 睡觉行为描述public void sleep() {System.out.println("月亮不睡你不睡, 你是秃头小宝贝");}// 游戏行为描述public void game() {System.out.println("WOT World Of Tank 坦克世界!");}
}
4. Java中创建对象的格式【重点】
4.1 模仿
格式:Scanner扫描器Scanner sc = new Scanner(System.in);赋值号左侧:Scanner:数据类型名, Scanner类, 【类名】sc:可以认为是Scanner类的对象, sc是对象名, 同时也是一个【引用数据类型变量】赋值号右侧:new:1. 在内存的堆区申请当前对象所需的内存空间2. 擦除整个内存空间中的所有数据, 所有的内存空间中二进制位都是0Scanner(System.in):和类名同名的方法目前 类名();即可格式:类名 对象名 = new 类名();
4.2 创建Person类对象
/*
* 这里创建一个Person对象
* 格式:
* 类名 对象名 = new 类名();
*
* 这里创建了一个Person类的对象, 对象名saolei
*/
Person saolei = new Person();
System.out.println(saolei);
/* com.qfedu.Object.Person@15db9742
* com.qfedu.Object 完整的包名
* Person 类名
* @ 所在内存位置
* 15db9742 是当前Person类的对象, saolei所在【堆区】内存空间首地址
*/
4.3 再模仿
int[] arr = new int[10]arr.length???这里没有小括号, 得到的是数组的容量, 是一个属性操作类内的成员变量类对象.成员变量名 可以赋值操作, 可以取值操作
4.4 使用成员变量方式
/*
通过Person类的对象, saolei操作name成员变量, age成员变量, gender成员变量进行赋值操作. 的 ==> 点可以在这里理解为 "的" 的意思
*/saolei.name = "航海中路彭于晏";saolei.age = 16;saolei.gender = '男';/*
通过Person类的对象, saolei取值成员变量内容
*/System.out.println("Name:" + saolei.name);System.out.println("Age:" + saolei.age);System.out.println("Gender:" + saolei.gender);
4.5 再再模仿
Scanner sc = new Scanner(System.in);sc.nextInt(); 通过Scanner类的对象 sc调用nextInt();
sc.nextFloat();
sc.nextDouble();
sc.nextLine.charAt();. 的格式:类对象.成员方法(所需参数);
4.6 通过类对象使用成员方法
/** 格式:* 类对象.成员方法(所需参数);* . 的*/saolei.eat("鲱鱼罐头鱼丸");saolei.sleep();saolei.game();
4.7 代码展示
package com.qfedu.Object;/*** 自定义Person类, 人类* @author Dream**/
class Person {/* 属性描述 【成员变量Field】*/// 姓名属性描述// String 是字符串类型 name成员变量String name;// 年龄描述// int 是数据类型 age成员变量int age;//性别描述// char 是数据类型 gender成员变量char gender;/* 行为描述 【成员方法Method】*/// 吃饭行为描述public void eat(String food) {System.out.println("吃" + food);}// 睡觉行为描述public void sleep() {System.out.println("月亮不睡你不睡, 你是秃头小宝贝");}// 游戏行为描述public void game() {System.out.println("WOT World Of Tank 坦克世界");}}public class Demo1 {public static void main(String[] args) {/** 这里创建一个Person对象* 格式:* 类名 对象名 = new 类名();* * 这里创建了一个Person类的对象, 对象名saolei*/Person saolei = new Person();System.out.println(saolei);/* com.qfedu.Object.Person@15db9742* com.qfedu.Object 完整的包名* Person 类名* @ 所在内存位置* 15db9742 是当前Person类的对象, saolei所在【堆区】内存空间首地址*//** 通过Person类的对象, saolei操作name成员变量, age成员变量,gender成员变量进行赋值操作* * . 的*/saolei.name = "航海中路彭于晏";saolei.age = 16;saolei.gender = '男';/** 通过Person类的对象, saolei取值成员变量内容.*/System.out.println("Name:" + saolei.name);System.out.println("Age:" + saolei.age);System.out.println("Gender:" + saolei.gender); /** 格式:* 类对象.成员方法(所需参数);* . 的*/saolei.eat("鲱鱼罐头鱼丸");saolei.sleep();saolei.game();}
}
Day12 学习分享 - 面向对象相关推荐
- iOS runtime 学习分享
这是团队小伙伴在内部的一次技术分享, 很开心, 我们团队越来越好了. iOS runtime 学习分享 Author:Liao Zusheng 申明: 部分资料来自于知名论坛和博客,已在文中给出相关源 ...
- 胡锐锋:组队学习分享(队长)
组队学习分享(队长) 自我介绍 胡锐锋,现为Datawhale成员,目前担任<统计学习方法习题解答>开源项目的负责人,已工作近8年,由大数据平台研发工程师转变成一位项目管理人.我的人生目标 ...
- Python学习之面向对象编程
Python学习目录 在Mac下使用Python3 Python学习之数据类型 Python学习之函数 Python学习之高级特性 Python学习之函数式编程 Python学习之模块 Python学 ...
- python anylogic_分享 | IE工具与仿真软件学习分享会
原标题:分享 | IE工具与仿真软件学习分享会 6月18日晚,IE工具与仿真软件学习分享会在经济与管理学院704教室顺利举行,此次分享会,有幸邀请到了欧阳林寒老师.大三学长张宇航和葛胜贤为大家讲解相关 ...
- python中if语句缺省else_9_【Python学习分享文章】_if(条件语句)
[Python学习分享文章]_if(条件语句)_logicalJudgement介绍及基本操作 综述 计算机的"条件语句"和生活中的"条件成立"是不一样的. 一 ...
- 学习分享会(2019.5.31)
学习分享会 First(初三大佬发言) 初三大佬在为初二大佬讲一堆哲学的道理,虽然十分高深,但还是听懂了一点点 Second(初二大佬发言) 初二大佬开始"秀",首先是大佬LW讲了 ...
- datatable的数据进行组内排序_排序算法学习分享(四)希尔排序
排序,也称为排序算法,可以说是我们学习算法的过程中遇到的第一个门槛,也是实际应用中使用得较为频繁的算法,我将自己对所学的排序算法进行一个归纳总结与分享,如有错误,欢迎指正! 排序算法学习分享(一)选择 ...
- Bootstrap的学习分享
大家好,这里是demo软件园,今天为大家分享的是Bootstrap的学习分享. 众所周知Bootstrap是一款简洁.直观.强悍的前端开发框架,让web开发更迅速.简单. 流体布局容器 容器的widt ...
- 佐切的第一天学习分享
从哪学呢?这对于我来说也是个很大的问题. 由于之前有看过一点php的视频教程,就从基础的html开始对之前看点那点视频教程的回顾. ①首先自己的一个认识,网页通过www.^^^^^来访问,这个协议是美 ...
最新文章
- nmap脚本(nse)原理和编写
- 计算机控制zos,第二章zOS操作系统的功能概述2.1zOS的内存管理.PDF
- 白话Elasticsearch69-ES生产集群部署重要的 Elasticsearch参数设置
- 用开源项目cropper实现对图片中任意部分进行裁剪
- 对node.js的net模块的一个测试
- CRM Set Type com_commercial的UI界面
- 【~~~】POJ-1006
- 【资源】史上最全数据集汇总
- 西门子S7-1200、1500固件更新第三方设备GSD导入
- h5实现文件下载,兼容ios、android
- mathematica动态模型的建模分析
- IE浏览器打不开网页
- linux指令buster是什么,FGO三类战斗指令卡有什么用 合理利用手中指令卡
- 平板有必要买触控笔吗?好用又便宜的触控笔推荐
- vue实现input输入模糊查询(三种方式)
- NVL、NVL2、NULLIF、COALESCE的区别是什么?
- Farmer John's math(c++)
- 币圈指数哪家强?且看分析OK VS 火币
- RAW 264.7 小鼠单核巨噬细胞白血病细胞培养解决方案
- 2007年2月13日