JAVA语言程序设计1(第七章)

一、编程思想

1. 面向过程:

(1) 面向过程:将问题分为第一步、第二步、第三步... 直到问题解决
(2) 问题:解决小业务相对比较简单,但是面对复杂业务时,相对不好处理

 2. 面向对象:

(1) 面向对象:将一些业务过程看成一个整体,利用对象之间关系,解决问题
(2) 好处:解决业务复杂问题时,相对简单

二、对象

1. 对象:

计算机中的对象:复杂的客观事物在 Java程序中的一种表现形式
                        ###一切皆对象###

2. 对象的组成部分:

(1) 对象的属性:代表对象有什么特征,对应静态数据部分
(2) 对象的方法:代表对象能做什么,对应动态的行为和功能

3. 类:

(1) 计算机中,使用类进行区分不同类别对象,用于描述该类对象有哪些属性和哪些方法
(2) 类和对象的关系:
类是对象的模板
对象是类的实例
  注意:一个类可以创建多个对象

三、类的组成

1. 类名:

望文生义,每个单词首字母大写

2. 类的组成:

class 类名 {
        // 1. 属性
        // 2. 方法
}

 3. 属性:

(1) 属性:也称为成员变量
(2) 位置:定义类以内,方法以外
(3) 语法:数据类型 变量名 ;
数据类型 变量名 = ;
(4) 成员变量具有默认值:
整数类型: 0
小数类型: 0.0
布尔类型: false
字符类型:空字符
对象类型: null
(5) 成员变量的作用范围:至少在本类中有效
(6) 一个类中不允许成员变量命名相同,但是成员变量可以和局部变量命名冲突;局部变量在方法中被优先使用

  4. 方法:

(1) 方法:也称为成员方法
(2) 位置:定义在类以内,其他的方法以外
(3) 语法:
  public 返回值类型 方法名 ( 形参 ){
      // 方法体
  }
(4) 方法的定义分为方法的声明和方法实现:
  a. 方法的声明:
修饰符 返回值类型 方法名 ( 形参 ) 异常
注意:一个方法的修饰符可以有0~n
  b. 方法的实现: {}

5. 创建对象:

(1) 类名 对象名 = new 类名 ();
(2) 使用:
对象名 . 属性名

  对象名.方法名(实参);

###四、方法的重载(overload)【开发+面试+考试】  

1. 理解:

一个类中可以定义多个同名的方法,但是参数列表不同

2. 要求:

(1) 方法名相同
(2) 形参列表不同 ( 数据类型、个数、顺序 )
(3) 返回值类型、修饰符、异常没有要求

3. 使用:

根据调用时,传递的实际参数决定调用哪一个方法

五、构造方法  

1. 构造方法:

是一种特殊的方法,也被称为构造器

2. 定义位置:

定义类以内,方法以外

3. 特点(要求):

(1) 构造方法的方法名必须和类名一致
(2) 构造方法没有返回值类型 ( void 都没有 )
(3) 语法:
修饰符 类名 ( 形参 ){}
(4) 构造方法允许重载
  ( 一个类中可以定义多个构造方法,但是无参数的构造方法只能一个,可以同时定义多个有参数的构造方法)
(5) 构造方法不能手动调用,在创建对象时,被调用

 4. 使用:

(1) 在创建对象时,根据传递的实际参数,决定具体调用哪一个构造方法完成对象的创建
(2) 如果一个类中没有提供任何的构造方法时, java默认提供一个公开的无参数的构造方法;当类中提供了有参数的构造方法,则默认的构造方法不再提供(可以自定义写出 )

 5. 构造方法的作用:

(1) 用于创建对象
(2) 借助构造方法给属性赋值

6. 开发应用技巧: 

实际开发一个类中通常提供两个构造方法:
(1) 一个无参数的构造方法
(2) 一个有参数的构造方法 ( 参数取决于属性的个数、类型、顺序)

六、this的应用 

1. this.

(1) this 代表当前对象,用于调用本类中属性或是方法
(2) this. 属性名
  this. 方法名 ( 实参 );
(3) this. 通常可以省略,但是当成员变量和局部变量命名冲突时,可以使用 this. 区分成员变量  
2. this()
(1) this() 只能应用在构造方法中,调用本类其他构造方法
(2) this() 只能应用在构造方法中的第一行有效语句

附:练习

1.

定义一个Dog类,类中属性有名字、年龄、性别(char);

要求如下:
        (1)提供一个无参数的构造方法和一个带有三个参数的构造方法
        (2)类中定义一个无参数的plav方法:输出“宠物狗”
        (3)类中定义一个带有一个参数的play方法,参数类型为int hours,打印输出玩的小时数
        (4) 定义一个测试类,分别用无参数的构造法和有参数的构造方法创建对象,并对属性赋值, 分别将对象的信息打印在控制台上,调用play方法。

###我的: 
package demo;
public class zuoye6c1{public static void main(String[] agrs){//the forth demandDog XiaoTian = new Dog();Dog Xiao_Tian = new Dog("啸天",100000,'秘');System.out.println("狗名"+Xiao_Tian.name+",目前寿元"+Xiao_Tian.years+"年,性别"+Xiao_Tian.sex+",价值连城,千金不换~~~/‘·‘!/~~~");XiaoTian.play();XiaoTian.play(9);Xiao_Tian.play();Xiao_Tian.play(999);}
}class Dog{//1.属性String name;//名字int years;//年龄char sex;//性别//2.构造方法//the first demandpublic Dog(){}public Dog(String name,int years,char sex){this.name = name;this.years = years;this.sex = sex;}//3.成员方法//the second demandpublic void play(){System.out.println("宠物狗");}//the third demandpublic void play(int hours){System.out.println("总共玩了"+hours+"个小时");}
}

2.

定义一个交通工具类(Vehicle)、类中属性有商标(brand)、颜色(color);

要求如下:
        (1)提供一个无参数的构造方法和有参数的构造方法
        (2)功能方法:移动方法(move())、此方法一旦被调用、控制台显示”我已经启动”展示信息(showlnfo())、此方法、展示商标和颜色信息
        (3)定义一个测试类,创建一个交通工具对象,并为属性赋值;将对象的信息打印输出,并调用对象的方法

package demo;
public class zuoye6c2{public static void main(String[] agrs){//the third demandVehicle h = new Vehicle("中国制造","天蓝色");System.out.println("商标:"+h.brand+",颜色:"+h.color);h.move();}
}class Vehicle{//1.属性String brand;//商标String color;//颜色//2.构造方法//the first demandpublic Vehicle(){}public Vehicle(	String brand,String color){this.brand = brand;this.color = color;}//3.成员方法//the second demandpublic void move(){showInfo();System.out.println("\"我已经启动\"展示信息(showInfo())");}public void showInfo(){System.out.println(brand+"-"+color);}
}

3. 

 定义一个网络用户类(User类)、需要处理的信息有用户名、用户密码password、邮箱地址(email);要求如下:
        (1)提供带有两个参数的构造方法,为用户名和用户密码赋值,此时email采用默认的:用户名加上”@zparkhr.com.cn”;同时提供带有三个参数的构造方法

        (2)定义一个show方法,用于展示用户的信息,密码处理为XXX
        (3)定义一个测试类,分别利用不同的构造方法创建对象,并利用方法,展示用户的信息。

package demo;
public class zuoye6c3{public static void main(String[] agrs){//the third demandUser U1 = new User("王-瀞-潞","rtiopttrui");User U2 = new User("王-璟-璐","uhthjrthhfe"," ");U1.show();U2.show();}
}class User{//1.属性String user_name;//用户名String password;//用户密码String email;//邮箱地址//2.构造方法//the first demandpublic User(String user_name,String password){this.user_name = user_name;this.password = password;}public User(String user_name,String password,String email){this.user_name = user_name;this.password = password;this.email = user_name+"@zparkhr.com.cn";}//3.成员方法//the second demandpublic void show(){System.out.println("用户名:"+user_name+",用户密码:XXX,邮箱地址:"+email);}
}

至此第七章结束

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Windows10环境搭建http服务器

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉&…

TikTok营销策略解析:7大关键要素打造品牌影响力

TikTok作为近年来迅速崛起的短视频社交平台,已经成为全球范围内品牌营销的重要阵地。对于品牌而言,如何在TikTok上有效地开展营销活动,吸引目标受众的注意力,提升品牌知名度和影响力,是摆在他们面前的重要课题。本文No…

联发科技发布天玑9300+旗舰5G生成式AI芯片 | 最新快讯

5 月 7 日消息,联发科技今天举办了天玑开发者大会 2024。大会上,联发科技开启了“天玑 AI 先锋计划”,联合业界生态企业发布了《生成式 AI 手机产业白皮书》,分享了生成式 AI 端侧部署的解决方案“天玑 AI 开发套件”。同时&#…

图片在线压缩,base64在线转换

图片在线压缩,超级好用 图片压缩 - 在线免费图片压缩软件-迅捷压缩在线迅捷免费在线图片压缩软件提供JPG压缩、PNG压缩、BMP压缩功能,为用户解决如何压缩图片的问题,实现一键压缩图片大小,是一款专业的高质量图片压缩工具.https://yasuo.xunjiepdf.com/img/ base64…

五道数组习题,只过思路

建议先过一遍:保研机试前的最后七道数组题-CSDN博客 第一题: 88. 合并两个有序数组 - 力扣(LeetCode) ​ 跟合并两个有序链表类似, 快慢指针的用法,新建立一个数组,再将数组赋给nums1。 第…

快速搭建webase-front并且部署合约

PS: 因为我开发时候要用到fisco和webase-front,避免官方文档粘贴, 因此直接整理下面的笔记。开发的时候,好粘贴。1.搭建4节点联盟链 前提 curl 一种命令行工具 apt install -y openssl curl创建操作目录, 下载安装脚本 cd ~ && mkdir -p fisco && cd fisco…

Spring管理第三方依赖

在开发中,我们常需要根据业务需求导入我们需要的第三方依赖包,本文主要以导入druid数据库来连接池为案例讲解有关spring管理第三方依赖 目录 纯注解文件注入 1.在pom.xml中导入依赖 2.在com.lcyy包下建立一个config包用于配置类的实现 3.在config包下…

前端库推荐:markdown语法解析库-marked

这里写自定义目录标题 marked 介绍项目库应用展示微信md格式化工具 核心工作流setOptions 和 use()Options 选项renderer块级渲染方法 block-level行内渲染方法 inline-level hookspreprocess 处理之前postprocess 处理之后 官网扩展插件高亮自定义扩展 marked 介绍 Marked 是…

第二证券今日投资参考:北方稀土上调挂牌价 磷化工产业链迎催化

昨日,沪指早盘窄幅震动,午后小幅拉升,科创50指数弱势下探。截至收盘,沪指涨0.22%报3147.74点,深证成指微跌0.08%报9770.94点,创业板指跌0.14%报1892.54点,上证50指数涨0.16%,科创50指…

iframe通信postMessage

iframe嵌入页面是实现微前端的方式之一。由于浏览器的跨域限制,iframe与父页面之间的通信变得不是那么容易。postMessage解决了这个问题。从广义上讲,一个窗口可以获得对另一个窗口的引用(比如 targetWindow window.parent)&…

JavaEE概述 + Maven

文章目录 一、JavaEE 概述二、工具 --- Maven2.1 Maven功能 仓库 坐标2.2 Maven之项目构建2.3 Maven之依赖管理 三、插件 --- Maven Helper 一、JavaEE 概述 Java SE、JavaEE: Java SE:指Java标准版,适用于各行各业,主要是Java…

UE灯光:点光和聚光灯的强度单位(cd、lm)

在虚幻引擎(UE)中,点光和聚光灯的光强使用两种不同的单位进行度量: 坎德拉(cd):坎德拉是光强度的国际单位(SI单位)。它代表光源在特定方向上每单位立体角发出的光通量。…

2024年数维杯数学建模A题思路

文章目录 1 赛题思路2 比赛日期和时间3 竞赛信息4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间:2024…

求Fibonacci数列前40个数

这个数列有如下特点:第1,2两个数为1,1。从第3个数开始,该数是其前面两个数之和。 解题思路: 这是一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生…

编写burp插件实现数据包自定义修改

背景 安全测试工作中经常遇到各种加密加签或者添加了其它安全措施的数据包。以加密为例,为了测试正常进行,我们需要解密后修改数据包再进行加密还原,手工的话很是繁琐且没必要,所以我们需要一个工具帮我们自动化的实现。由于我们…

为什么跑腿越来越受到年轻人的青睐

跑腿服务越来越受到年轻人的青睐,主要源于以下几个方面的原因: 1. 便捷快速:在快节奏的现代生活中,年轻人追求的是效率和速度。跑腿服务提供了一种即时、便捷的解决方案,使他们能够在繁忙的生活和工作中节省时间和精力…

两个手机在一起ip地址一样吗?两个手机是不是两个ip地址

在数字时代的浩瀚海洋中,手机已经成为我们生活中不可或缺的一部分。随着移动互联网的飞速发展,IP地址成为了连接手机与互联网的桥梁。那么,两个手机在一起IP地址一样吗?两个手机是不是两个IP地址?本文将带您一探究竟&a…

一些js的基础

五大主流浏览器 内核 IE trident chrome webkit blink safari webkit firefox gecko opera presto ECMA European Computer Manufactures Association 欧洲计算机制造联合会 评估、开发 认可电信、计算机标准 ECMA-262 脚本语言的规范 ECMAScript 编程语言 1、编译型 翻译…

分享一个php常驻内存多进程任务的扩展

前言 最近在摸鱼的时候发现一个PHP常驻内存多进程任务扩展包:EasyTask: PHP常驻内存多进程任务管理器,支持定时任务(PHP resident memory multi-process task manager, supports timing tasks) (gitee.com),支持php使用多线程处理任务。之前…

使用 Docker 部署 TaleBook 私人书籍管理系统

1)项目介绍 GitHub:https://github.com/talebook/talebook Talebook 是一个简洁但强大的私人书籍管理系统。它基于 Calibre 项目构建,具备书籍管理、在线阅读与推送、用户管理、SSO 登录、从百度/豆瓣拉取书籍信息等功能。 友情提醒&#x…