day08

回顾

1.选择排序原理: 找到最小值的下标,交换
2.冒泡排序原理: 比较相邻的两个元素,把最小值放到左边。第一次比较的时候最大值放到最右边了,以此类推

今天的内容

1类和对象

2.类和对象内存

3.构造方法

1.从生活的角度区理解面向对象开发

有两种编程思想:

​ 面向过程:

​ 程序自上而下执行,不牵涉到类和对象的操作。本质是代码自己完成自己的功能

​ 冒泡排序是面向过程的

​ 亲力亲为 都是面向过程的

​ 面向对象:

​ 程序是靠对象完成一定的功能

​ Arrays.sort(arr) 这个就是面向对象的

​ 借助于对象来实现功能的

2.面向对象两个重要概念

类: 是对一切相似事物的统称。是一个泛泛的概念。可以用来描述事物的特征和行为的

对象:是一个具体的实体。是这是真实存在的。在类的基础之上孵化出来的。

对象
我家里面的一个大黄狗
千锋Java教学部郑州校区的王博
桌子学虎正在坐的桌子
特征:就是一类事物的属性,比如人的年龄  身高 体重  性别在Java代码中使用变量来表示一个类的特征或者属性int age;double height;是静的东西
行为:就是动作  吃饭 睡觉  敲代码在Java中使用方法来描述一个类的行为是动的东西

只要注意好特征和行为就可以写好一个类了。

人类:特征,又叫属性:名字 性别 身高  体重行为,又叫方法:吃饭  睡觉 敲代码

3.声明一个类

语法格式:

[public] class 类名 {对于当前类的属性的描述对于当前类的行为的描述
}
package com.qfedu.a_class;class Person {//人类://属性: 姓名  年龄  性别  身高//行为: 吃饭  睡觉//类下面的属性:  Java使用变量来描述//在类中 变量最好不要赋值String name; //名字  nullint age;//年龄  0char sex;//性别 double height;//身高0.0//在类中后书写行为  Java使用方法来描述行为//public static void eat() {}//今天学的内容,和之前方法的声明不一样,去掉static即可public void  eat () {System.out.println("中午吃酸菜鱼");}public void sleep () {System.out.println("中午不睡,下午崩溃");}}

案例:

​ 狗类:

​ 属性: 名字 毛色 品种 性别

​ 行为: 看家 打架

package com.qfedu.a_class;public class Dog {String name;//声明的狗的名字String color;//代表的是狗毛色String kind;//代表狗的品种boolean sex;//性别//定义方法public void lookHome () {System.out.println("狗汪汪叫,在看家");}public void fight () {System.out.println("狗咬狗,一嘴毛");}}

案例:

​ 猪类:

​ 属性和方法自己想

4.对象的创建

一个类声明好以后,不使用它,它是一直存在,咱们可以借助于对象衍生出一个实体。

类可以衍生出来一个对象。类相当于一个模子。可以造出来一个实体。

造出对象的目的是为了啥? 就是执行属性的复制和方法的调用的

先有类,再有对象

对象的创建在main主函数中。目的是为了执行这个对象代码

Java语法格式:

类名  对象的名字 = new 类名();
package com.qfedu.a_class;//Demo1叫测试类  里面有main主函数
public class Demo1 {public static void main(String[] args) {//类名  对象的名字 = new  类名();//这个对象是由类衍生出来的,就意味着类下面的属性可以使用//类下面的方法我可以调用Person person = new Person();//对属性进行赋值//person的名字 为 狗蛋person.name = "狗蛋";person.age = 78;person.sex = '男';person.height = 98.7;//以上是对对象的属性进行赋值//将对象的属性值取出来System.out.println(person.name + person.age + person.sex + person.height);//方法的调用  对象.方法名字();person.eat();person.sleep();Person person1 = new Person();person1.name = "二狗";person1.age = 12;person1.sex = '男';person1.height = 178;System.out.println(person1.name + person1.age + person1.sex + person1.height);person1.eat();person1.sleep();}}

案例:

​ 之前写过一个Dog类。现在开始通过Dog类创建dog对象,可以创建多个的

package com.qfedu.a_class;public class Demo2 {public static void main(String[] args) {Dog dog = new Dog();dog.name = "";dog.color = "花色";dog.kind = "金毛";dog.sex = true;System.out.println(dog.name + dog.color + dog.sex + dog.kind);dog.fight();dog.lookHome();}}

咱们现在实体类和测试类写在了不同的Java文件中。

5.创建的实体类和测试类在同一个Java文件中

文件的名字以测试类来命名

package com.qfedu.a_class;//注意事项:实体类和测试类写在同一个文件中的时候,实体类不能带public修饰符
class Pig {String name;double weight;//体重char sex;//性别public void eat () {System.out.println("猪吃白菜!!!");}public void sleep () {System.out.println("猪睡觉打呼噜");}
}class Demo3 {public static void main(String[] args) {//创建对象Pig pig = new Pig();pig.name = "大黄";pig.weight = 100.1;pig.sex = '公';System.out.println(pig.name + pig.weight + pig.sex);pig.eat();pig.sleep();}}

练习 :

​ 羊类 龙类 老鼠 鸡

​ 属性和方法自己声明,创建对象对属性进行赋值和方法调用。

​ 写在同一个文件中!!!

上午的内容

1.会新建一个类
2.会通过类创建一个对象 并对对象的属性进行赋值   对象还可以调用类下面的方法

6.构造方法

构造方法的目的是为了初始化对象的,换句话说,可以对对象的属性进行赋值

对象创建其实是依据构造方法创建的!!!【重点】

6.1无参构造方法

构造方法必须写在实体类中

语法格式:

public 类名() {}
package com.qfedu.b_constructor;class Dog {String name;int age;public Dog () {System.out.println("嘻嘻哒");name = "大黄";age = 12;}}
public class Demo2 {public static void main(String[] args) {//当new Dog()的时候就会去自动调用无参构造方法去执行无参构造方法中的方法体Dog dog = new Dog();dog.name = "旺财";dog.age = 3;//打印的是旺财和3 为啥没有打印大黄和12 因为无参构造先执行了//后面赋的值就会覆盖掉初始化的值System.out.println(dog.name);System.out.println(dog.age);}}
6.2有参构造

语法格式:

public 类名 (参数) {初始化条件;
}
package com.qfedu.b_constructor;class Cat {String name;String kind;int age;public Cat() {}//和下面的有参构造一模一样!!!
//	public Cat (String kind) {
//		this.kind = kind; 
//	}//声明一个有参构造方法public Cat (String name) {this.name = name;}//带有三个参数 构造方法public Cat (String name, String kind, int age) {this.name = name;this.age = age;this.kind = kind;}}
public class Demo3 {public static void main(String[] args) {Cat cat = new Cat("狗蛋");System.out.println(cat.name);//new对象的时候依据构造方法来创建对象Cat cat1 = new Cat("毛蛋", "波斯", 3);System.out.println(cat1.name);System.out.println(cat1.age);System.out.println(cat1.kind);//一旦写了有参构造方法以后,默认的无参构造方法就没有了Cat cat2 =  new Cat();cat2.name = "Tom";cat2.age = 4;cat2.kind = "蓝猫";}
}

案例:

猴子类:

package com.qfedu.b_constructor;class Monkey {String name;int age;double weight;public Monkey (String name, int age, double weight) {this.name = name;this.age = age;this.weight = weight;}}
public class Demo4 {public static void main(String[] args) {Monkey monkey = new Monkey("弼马温", 3, 98.7);//不让你使用对象.变量 = 初始化的值; 这种方式对属性进行赋值了//换一种方式赋值。叫有参构造
//		monkey.name = "孙悟空";
//		monkey.age = 500;
//		monkey.weight = 89;System.out.println(monkey.name);System.out.println(monkey.age);System.out.println(monkey.weight);}}

7.对象在内存中如何存储的

栈内存:

​ 存的是八大基本数据类型的数据

​ 对象的引用。 =左边

堆内存:

​ 对象的全部数据
在这里插入图片描述

8.构造代码块【了解】

开发中已经不用了

以后会讲静态代码块。

构造代码块的目的也可以对咱们的对象进行初始化的。功能和构造方法一样的

语法格式:

{语句体
}

注意事项:

​ 1.构造代码块必须写在实体类中

​ 2.先执行的是构造代码块,再执行构造方法

package com.qfedu.b_constructor;class Tiger {String name;int age;//再声明一个构造方法public Tiger () {this.name = "haha";System.out.println("我是无参构造方法");}//先写一个构造代码块{this.name = "嘻嘻";System.out.println("我是构造代码块");}
}
public class Demo5 {public static void main(String[] args) {//先执行实体类中构造代码块 然后再执行构造方法Tiger tiger = new Tiger();System.out.println(tiger.name);}}

9.局部变量和成员变量

9.1局部变量

局部变量就是变量的作用域,其实是已经见过局部变量

package com.qfedu.c_var;import org.omg.CORBA.PUBLIC_MEMBER;public class Demo1 {public static void main(String[] args) {for (int i = 0; i < 5; i++) {//上面的i就是for循环的局部变量,出了for循环还能用吗?不能//紧紧围绕着一个东西就是那个大括号System.out.println(i);}//System.out.println(i);if (3 < 4) {int i = 98;}}public static void test () {int i = 20;System.out.println(i);}public static void test1 () {//System.out.println(i);}//总结一下: 一定要看清大括号里面的那个变量只能在大括号里面来使用的}
9.2成员变量

定义在实体类中的大括号的后面,又叫属性

String name;

int age;

package com.qfedu.c_var;class Person {//name 和 age都是成员变量String name;int age;//作用域 是作用再整个类中 的,只要在类中都可以使用当前的成员变量public void eat () {double weigt;//局部的变量System.out.println(name + age);}
}
public class Demo2 {public static void main(String[] args) {}}
9.3局部和成员变量的区别
区别成员变量局部变量
定义的位置类的大括号的后面(属性)定义在方法体中
作用用来描述对象的特征的在方法体中只是用来存储数据的
初始化的值默认值在使用的时候必须赋值
内存堆区栈区
作用域作用整个类只能在当前的方法中使用

总结:

1.会声明一个类
2.会创建一个对象
3.会对对象的属性进行赋值
4.会对对象的方法进行调用
5.构造方法的声明有一些细节一定要关注构造方法是初始化对象的6.构造代码块
7.局部变量和成员变量

作业:

1.整理一些东西整理的时候要把每个致知识点掌握!!!
2.十二生肖:要求 测试类和实体类写在一起实体类中要有属性  构造方法 和方法测试中要对属性进行赋值(使用构造方法进行赋值),方法要调用
3.预习明天的视频

------------------ | ---------------------------- |
| 定义的位置 | 类的大括号的后面(属性) | 定义在方法体中 |
| 作用 | 用来描述对象的特征的 | 在方法体中只是用来存储数据的 |
| 初始化的值 | 默认值 | 在使用的时候必须赋值 |
| 内存 | 堆区 | 栈区 |
| 作用域 | 作用整个类 | 只能在当前的方法中使用 |

总结:

1.会声明一个类
2.会创建一个对象
3.会对对象的属性进行赋值
4.会对对象的方法进行调用
5.构造方法的声明有一些细节一定要关注构造方法是初始化对象的6.构造代码块
7.局部变量和成员变量

作业:

1.整理一些东西整理的时候要把每个致知识点掌握!!!
2.十二生肖:要求 测试类和实体类写在一起实体类中要有属性  构造方法 和方法测试中要对属性进行赋值(使用构造方法进行赋值),方法要调用
3.预习明天的视频

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

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

相关文章

Hologres + Flink 流式湖仓建设

Hologres Flink 流式湖仓建设 1 Flink Hologres2 实时维表 Lookup 1 Flink Hologres holo在实时数仓领域非常受欢迎&#xff0c;一般搭配flinkhologres来做实时数仓&#xff0c;中间分层用holo&#xff0c;上下游一般依赖于holo的binlog来下发数据 2 实时维表 Lookup Holo…

展厅设计原则都包含哪些

1、风格与品牌一致性 展厅设计应体现企业的品牌形象和价值观&#xff0c;从色彩、材料选择到整体布局&#xff0c;都应与企业的品牌风格保持一致。 2、空间规划和流线设计 展厅内不同区域需要有合理的空间规划和流线设计&#xff0c;使参观者能够便利地浏览展品和了解企业信息。…

基于YOLOv8深度学习的苹果叶片病害智能诊断系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

走迷宫(c语言)

前言&#xff1a; 制作一个迷宫游戏是一个有趣的编程挑战。首先&#xff0c;我们需要设计一个二维数组来表示迷宫的布局&#xff0c;其中每个元素代表迷宫中的一个格子。我们可以使用不同的值来表示空格、墙壁和起点/终点。接下来&#xff0c;我们需生成迷宫。在生成迷宫的过程…

联手英特尔,释放星飞分布式全闪存储潜能

近日&#xff0c;英特尔官网发布了与 XSKY 星辰天合联手打造的解决方案&#xff0c;即 XSKY 的新一代全闪分布式存储系统 XINFINI&#xff0c;该存储系统采用英特尔 QAT 加速数据压缩/解压缩&#xff0c;从而大幅度提升存储系统性能。 全闪存储系统面临的解压缩挑战 在存储系统…

鸿蒙开发笔记(三):页面和自定义组件生命周期

先明确自定义组件和页面的关系&#xff1a; 自定义组件&#xff1a;Component装饰的UI单元&#xff0c;可以组合多个系统组件实现UI的复用。 页面&#xff1a;即应用的UI页面。可以由一个或者多个自定义组件组成&#xff0c;Entry装饰的自定义组件为页面的入口组件&#xff0c…

Cypress安装与使用教程(4)—— 软测大玩家

&#x1f60f;作者简介&#xff1a;博主是一位测试管理者&#xff0c;同时也是一名对外企业兼职讲师。 &#x1f4e1;主页地址&#xff1a;【Austin_zhai】 &#x1f646;目的与景愿&#xff1a;旨在于能帮助更多的测试行业人员提升软硬技能&#xff0c;分享行业相关最新信息。…

计算机组成原理期末复习

文章目录 第一章&#xff1a;计算机系统漫游编译系统进程线程之间的关系存储器层次结构虚拟地址 第二章&#xff1a;信息的表示和处理大端与小端整数运算浮点数运算 第三章&#xff1a;程序的机器级表示栈的压入和弹出算数与逻辑运算操作指令条件判断与循环 第六章&#xff1a;…

【金猿案例展】首创证券——NoETL敏捷分析解决方案

‍ Aloudata 本项目案例由 Aloudata 投递并参与“数据猿年度金猿策划活动——2023大数据产业年度创新服务企业榜单/奖项”评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 党的十八大以来&#xff0c;党中央、国务院不断加大金融科技创新支持力度&#xff0c;扩大金融科…

关于有源电力滤波器在地铁站低压配电系统中的应用分析——安科瑞赵嘉敏

摘要&#xff1a;作为国家提出的绿色电网、节能降耗已成为现代化企业努力的目标&#xff0c;也是企业急需解决的问题。作为地铁车站这类市政公共交通建筑的着重系统——配电系统。实现绿色电网实质上是解决电网中存在的各种电能问题&#xff0c;主要是涉及到谐波与无功问题两个…

统计学习 复习(知识点+习题)

复习资料&#xff1a;https://github.com/RuijieZhu94/StatisticalLearning_USTC 第一章 线性回归 1. From one to two 最小二乘 课后题 有偏/无偏估计 加权最小二乘 2. Regularization 线性回归&#xff08;二维情况&#xff09; 求解有约束优化问题 正则化最小加权二乘…

postman上传文件文件名有黄色图标

问题&#xff1a; 解决方案 步骤一&#xff1a;设置处打开settings 步骤二&#xff1a;打开location&#xff0c;选择文件所在磁盘目录 步骤三&#xff1a;关闭选项框 文件报错问题解决

数字孪生+人工智能突破复杂地形和气候提供可靠的电力

利用 Bentley 应用程序实现数字化交付&#xff0c;大大缩短了项目时间和成本&#xff0c;降低了碳排放量 Kalpataru Projects International Limited (KPIL) 正在扩展喀麦隆的电力网络&#xff0c;以改善该国 13% 人口的电网连接和电力供应。根据其项目管理方法&#xff0c;KPI…

MySQL 从零开始:02 MySQL 安装

文章目录 1、下载 MySQL 安装程序2、安装 MySQL 要操作 MySQL &#xff0c;首先要安装 MySQL &#xff0c;本文将一步步展示如何安装 MySQL&#xff0c;简直详细到令人发指。 环境&#xff1a; 操作系统&#xff1a;Windows10 64位MySQL版本&#xff1a;社区版 8.0.11.0 1、下…

什么是WhatsApp Business?WhatsApp和WhatsApp Business区别?

什么是WhatsApp Business&#xff1f; WhatsApp Business账号是Meta专为企业设计的WhatsApp账号。不同于消费者层次的应用&#xff0c;WhatsApp Business旨在为企业提供更好的服务支持&#xff0c;方便企业与消费者建立更好的双向沟通渠道。 WhatsApp和WhatsApp Business有什…

逸学Docker【java工程师基础】2.Docker镜像容器基本操作+安装MySQL镜像运行

基础的镜像操作 在这里我们的应用程序比如redis需要构建成镜像&#xff0c;它作为一个Docker文件就可以进行构建&#xff0c;构建完以后他是在本地的&#xff0c;我们可以推送到镜像服务器&#xff0c;逆向可以拉取到上传的镜像&#xff0c;或者说我们可以保存为压缩包进行相互…

第三代量子计算机交付,中国芯片开辟新道路,光刻机难挡中国芯

日前安徽本源量子宣布第三代超导量子计算系统正式上线&#xff0c;这是中国最先进的量子计算机&#xff0c;计算量子比特已达到72个&#xff0c;在全球已居于较为领先的水平&#xff0c;这对于中国芯片在原来的硅基芯片受到光刻机阻碍无疑是巨大的鼓舞。 据悉本源量子的第一代、…

docker应用:搭建uptime-kuma监控站点

简介&#xff1a;Uptime Kuma是一个易于使用的自托管监控工具&#xff0c;它的界面干净简洁&#xff0c;部署和使用都非常方便。 历史攻略&#xff1a; docker&#xff1a;可视化工具portainer docker-compose&#xff1a;搭建自动化运维平台Spug 开源地址&#xff1a; ht…

药物“出气”可知|ZL-005大小鼠雾化给药仪

雾化吸入给药是一种通过装置使药物进入肺部局部或全身发挥作用的给药方式。相较于口服药剂&#xff0c;雾化吸入给药可避免首过效应和药剂破坏&#xff0c;提高药物生物利用度。 而ZL-005大小鼠雾化给药仪&#xff0c;则是新一代小动物雾化装置的理想选择&#xff0c;可完成动…

逆水行舟 不进则退

目录 一、前言 二、2023年度总结 三、2024展望未来 一、前言 这是我从工作以来到现在最喜欢的一句话&#xff0c;我想把这句话送给自己也想送给大家。 2019年7月实习到现在已经过去了四年多&#xff0c;进入2024年也迎来了我工作生涯的第五个年头。 在这个行业里&#xff…