学习Java的第九天

本章将学习什么是类的无参、带参方法又是什么

一、什么是类的无参方法

        类是由一组具有相同属性和共同行为的实体抽象而来。对象执行的操作是通过编写类的方法实现的。显而易见,类的方法是一个功能模块,其作用是“做一件事情”。

1、类的方法必须包括以下3个部分

  1. 方法名称
  2. 方法返回值
  3. 方法的主体

2、访问修饰符:该方法允许被访问调用的权限范围

  • public:表示公开的,公共的;在一个java文件中,可以定义多个类,但是被public修饰的类只能有一个,并且被public修饰的类的类名称必须和java文件名称相同;可以修饰类、属性、方法;
  • protected:表示受保护的,可以被本类、同一个包中的类、不同包中的子类所访问到;可以修饰属性、方法,但是不能修饰外部类,可以修饰内部类;
  • private:表示私有的,只能在自己所属的类中使用,访问权限最小;可以修饰变量、修饰方法,但是private不能修饰外部类,可以修饰内部类;
  • default:默认访问权限(什么也不写),只能被本类或者同一个包中的其他类访问到;注:在接口中,默认的访问修饰符是public;

语法格式:

public  返回值类型  方法名(){//方法的主体}

示例:

public class Programmer {       //创建类String name = "爱编程";//吃饭方法public void eat(){System.out.println("晚饭时间,吃烧烤!");}//睡觉方法public void sleep(){System.out.println("夜深了,好好睡觉!");}//编写代码方法public String writeCode(){String code = "代码";return code;}
}

上述代码中定义了三个方法,可以直接调用。可见,类的方法定义了类的某种行为,而且方法的山西爱你封装在类中,实现了信息隐藏。

3、通常,编写方法时,分两步完成

  • 定义方法名和返回值类型
  • 在“{}”中编写方法的主体部分

4、编写方法是需注意以下三点:

  • 方法体放在一对大括号中,方法体就是一段程序代码,完成一定的工作
  • ·方法名主要在滴哦用这个方法时使用。在Java中一班采用骆驼式命名法。
  • ·方法执行后可能返回值一个结果,该结果的类型称为返回值类型。使用return语句返回值。

语法格式:

return 表达式;

例如上述代码中,返回值类型是String,因此在方法中必须使用return关键字返回一个字符串。如果方法没有返回值,则返回值类型为void。

在便携而程序时候一定要注意方法生命中返回值类型的类型和方法体中真正返回值的类型是否匹配。如果不匹配,编译器就会报错。

return语句的作用(跳转语句的一种):

·跳出方法:意思是“我已经完成了,要离开这个方法”。
·给出结果:如果方法产生一个值,这个值放在return后面,即上述语法中的“表达式”部分,意思是“离开方法”并将“表达式”的返回值返回给调用它的程序。

5、方法调用

语法格式:

对象名.方法名();

Java中类是程序的基本单元。每个对象需要完成特定的应用程序功能。当需要某一对象执行一项特定操作时,通过调用方法来实现。另外,在类中,类的不同方法之间也可以进行相互调用。

示例:

public class Programmer {       //创建类String name = "爱编程";            //声明String类型的变量并且赋值//吃饭方法public void eat(){System.out.println("晚饭时间我喜欢去吃烧烤!");}//睡觉方法public void sleep(){System.out.println("夜深了,我会好好睡觉!");}//编写代码方法public String writeCode(){String code = "编写代码";return code;}/*获得名字*/public String getName() {return name;}/*显示信息*/public String showProgrammer(){return "我的名字叫" + getName() + "," + "是一名程序员.";}
}

测试类:

public class ProgrammerTest {           //创建类public static void main(String[] args) {           //主方法Programmer pgm = new Programmer();              //创建对象String info = pgm.showProgrammer();             //调用方法并接收返回值System.out.println(info);                       //输出System.out.println("上班时间,我的工作是:" + pgm.writeCode());        //调用方法pgm.eat();                                      //调用eat()方法pgm.sleep();                                    //调用sleep()方法System.out.println("Good night");             //输出}}

运行结果:

通过上面的代码可以看到,类的成员方法相对独立地完成了某个应用程序功能,他们之间可以相互调用,调用时仅仅使用成员方法的名称。但是其他类的党发要调用该类的成员方法时候,就必须先创建这个类的一个对象,然后通过操作符“.”使用它的成员方法。如果类的方法有返回值,调用时就可以得到它的返回值。

6、常见错误:

原因分析:方法的返回值类型为void,方法中不能有return 语句。

原因分析:方法不能返回多个值。

原因分析:多个方法不能相互嵌套定义。例如,不能将getInfo()定义在showInfo()中。

还有很多使用无参方法的错误操作,这里就不一一展示了,想要了解更多的可以私信我。

二、类的带参方法

语法格式:

<访问修饰符>  返回值类型  <方法名>(<形式参数列表>) {//方法的主体
}

类的带参方法跟无参相差无几,就只是多了个参数,而参数类型有很多种,常见的有String、int、double等,也可以是对象、数组等参数类型

示例:

public class StudentBiz {                   //创建类String[] names = new String[30];            //创建学生姓名数组public void addNmae(String name){           //有参方法//增加学生姓名}public void showName(){         //无参方法//显示学生姓名}}

测试类: 

public class TestAdd {      //创建类public static void main(String[] args) {        //主方法StudentBiz st = new StudentBiz();           //创建对象Scanner input = new Scanner(System.in);    //Java中的Scanner类for (int i = 0; i < 5; i++) {               //for循环输入学生姓名System.out.println("请输入学生姓名:");String newName = input.next();          //接收输入st.addNmae(newName);                    //调用方法并传实参}st.showNames();                          //显示全部学生姓名}
}

运行结果: 

三、带多个参数的方法

示例:

public class StudentBiz {                   //创建类String[] names = new String[]{"张三","李四","赵五","钱六","孙七",};   //创建学生姓名数组public boolean searchName(int start, int end, String name) {        //带参数的方法boolean find = false;       //是否找到标识//在指定的数组区间中查找姓名for (int i = start - 1; i < end; i++) {                     //循环查找if (names[i].equals(name)) {find = true;break;}}return find;                    //返回值}
}
import java.util.Scanner;           //导包public class NewStudentTest {                                  //创建类public static void main(String[] args) {                  //主方法StudentBiz st = new StudentBiz();                       //创建对象Scanner input = new Scanner(System.in);                //Java中的ScannerSystem.out.println("请输入开始查找的位置:");         //提示int s = input.nextInt();                                //定义int类型的变量接收输入System.out.println("请输入结束查找的位置:");         //提示int e = input.nextInt();                                //定义int类型的变量接收输入System.out.println("请输入查找的姓名:");             //提示String name = input.next();                             //定义int类型的变量接收输入System.out.println("****查找结果****");if (st.searchName(s,e,name)){                           //判断是否找到System.out.println("找到了");}else{System.out.println("没找到");}}
}

运行结果:

带参方法的参数个数无论多少,在使用时只要注意实参和形参互相对应:传递的实参值与形参的数据类型相同、个数相同、顺序一致,就掌握了带参数方法的使用。

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

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

相关文章

【海贼王的数据航海】排序——概念|直接插入排序|希尔排序

目录 1 -> 排序的概念及其运用 1.1 -> 排序的概念 1.2 -> 常见的排序算法 2 -> 插入排序 2.1 -> 基本思想 2.2 -> 直接插入排序 2.2.1 -> 代码实现 2.3 -> 希尔排序(缩小增量排序) 2.3.1 -> 代码实现 1 -> 排序的概念及其运用 1.1 -&g…

React改变数据【案例】

State传统方式 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>React Demo</title> <!--…

linuxOPS基础_vmware虚拟机安装及介绍

虚拟机概念 什么是虚拟机&#xff1f; 虚拟机&#xff0c;有些时候想模拟出一个真实的电脑环境&#xff0c;碍于使用真机安装代价太大&#xff0c;因此而诞生的一款可以模拟操作系统运行的软件。 虚拟机目前有2 个比较有名的产品&#xff1a;vmware 出品的vmware workstatio…

Jmeter(五) - 从入门到精通 - 创建网络计划实战和创建高级Web测试计划(详解教程)

1.简介 上一篇中已经将其的理论知识介绍了一下&#xff0c;这一篇就带着大家一步一步的把上一篇介绍的理论知识实践一下&#xff0c;然后再说一下如何创建高级web测试计划。 2.网络计划实战 通过上一篇的学习&#xff0c;将其分类为&#xff1a; &#xff08;1&#xff09;不需…

蓝桥杯真题讲解:三国游戏(贪心)

蓝桥杯真题讲解&#xff1a;三国游戏&#xff08;贪心&#xff09; 一、视频讲解二、正解代码 一、视频讲解 蓝桥杯真题讲解&#xff1a;三国游戏&#xff08;贪心&#xff09; 二、正解代码 //三国游戏&#xff1a;贪心 #include<bits/stdc.h> #define int long lon…

Springboot applicaton.yml logging output

debug model will show the SQL running process

同城即配年度观察:顺丰同城率先全年盈利,行业破局迎参考

即时消费趋势增强&#xff0c;“万物到家即时可得”成为了消费新常态。这创造出不可忽视的场景潜力&#xff0c;也在无形中让龙头企业的发展质量走到突破点。 3月11日晚&#xff0c;“第三方即时配送第一股”顺丰同城发布公告称&#xff0c;预期实现2023年全年盈利&#xff0c…

Python的os模块,必学干货!

1.os模块作用 主要是用来完成对文件或者文件夹的操作 2.导入os模块 import os 3.listdir() 查看指定目录下面所有的文件或者文件夹 print(os.listdir(r"D:\PycharmProjects\pythonProject")) # [.idea, 01_语法, 02_函数, 03_类型转换, 04_运算符, 05_分支结…

深入解析C++树形关联式容器:map、set及其衍生容器的使用与原理

文章目录 一、引言二、关联式容器的中的 paira.pair 的创建及使用b.pair 间的比较 三、 map 与 set 详解1. map 的基本操作2. set 的基本操作3.关联式容器的迭代器 四、 multimap 与 multiset 的特性五、关联式容器的使用技巧与注意事项1. 键值类型的选择与设计2. 自定义比较函…

专题1 - 双指针 - leetcode 15. 三数之和 - 中等难度

leetcode 15. 三数之和 - 点击直达 leetcode 15. 三数之和 中等难度 双指针1. 题目详情1. 原题链接2. 基础框架 2. 解题思路1. 题目分析2. 算法原理3. 时间复杂度 3. 代码实现4. 知识与收获 leetcode 15. 三数之和 中等难度 双指针 1. 题目详情 给你一个整数数组 nums &#…

Pytorch实战01——CIAR10数据集

目录 1、model.py文件 &#xff08;预训练的模型&#xff09; 2、train.py文件&#xff08;会产生训练好的.th文件&#xff09; 3、predict.py文件&#xff08;预测文件&#xff09; 4、结果展示&#xff1a; 1、model.py文件 &#xff08;预训练的模型&#xff09; impor…

吴恩达机器学习笔记 十七 通过偏差与方差诊断性能 正则化 偏差 方差

高偏差&#xff08;欠拟合&#xff09;&#xff1a;在训练集上表现得也不好 高方差&#xff08;过拟合&#xff09;&#xff1a;J_cv要远大于J_train 刚刚好&#xff1a;J_cv和J_train都小 J_cv和J_train与拟合多项式阶数的关系 从一阶到四阶&#xff0c;训练集的误差越来越小…

力扣串题:验证回文串2

整体思路&#xff1a;先找到可能存在问题的点&#xff0c;然后判断&#xff0c;如果一切正常则左指针会来到字符串中部 bool isValidPalindrome(char *s, int i, int j) {while (i < j) {if (s[i] ! s[j]) {return false;}i;j--;}return true; }bool validPalindrome(char …

禁用文本框输入中文,禁用中文输入法的ImeMode方法

之前遇到一个问题&#xff0c;在文本框切换输入法为中文后&#xff0c;使用扫码枪扫码时 会出现 比如条码NH123456 在文本框内会显示 你好23456 这里可以使用输入法编辑器ImeMode枚举属性 如果文本框只能输入英文数字&#xff0c;可以使用ImeMode.Disable&#xff0c;但默…

LeetCode(力扣)算法题_1261_在受污染的二叉树中查找元素

今天是2024年3月12日&#xff0c;可能是因为今天是植树节的原因&#xff0c;今天的每日一题是二叉树&#x1f64f;&#x1f3fb; 在受污染的二叉树中查找元素 题目描述 给出一个满足下述规则的二叉树&#xff1a; root.val 0 如果 treeNode.val x 且 treeNode.left ! n…

js【详解】ajax (含XMLHttpRequest、 同源策略、跨域)

ajax 的核心API – XMLHttpRequest get 请求 // 新建 XMLHttpRequest 对象的实例 const xhr new XMLHttpRequest(); // 发起 get 请求&#xff0c;open 的三个参数为&#xff1a;请求类型&#xff0c;请求地址&#xff0c;是否异步请求&#xff08; true 为异步&#xff0c;f…

Linux使用git命令行教程

. 个人主页&#xff1a;晓风飞 专栏&#xff1a;数据结构|Linux|C语言 路漫漫其修远兮&#xff0c;吾将上下而求索 文章目录 git安装git仓库的创建.git 文件添加文件git 三板斧(add,commit,push)解释拓展git log.gitignore git安装 首先输入git --version看看有没有安装git 如…

Python语言在编程业界的地位——《跟老吕学Python编程》附录资料

Python语言在编程业界的地位——《跟老吕学Python编程》附录资料 ⭐️Python语言在编程业界的地位2024年3月编程语言排行榜&#xff08;TIOBE前十&#xff09; ⭐️Python开发语言开发环境介绍1.**IDLE**2.⭐️PyCharm3.**Anaconda**4.**Jupyter Notebook**5.**Sublime Text** …

操作系统——cpu、内存、缓存介绍

一、内存是什么 内存就是系统资源的代名词&#xff0c;它是其他硬件设备与 CPU 沟通的桥梁&#xff0c; 计算机中的所有程序都在内存中运行。其作用是暂时存放CPU的运算数据&#xff0c;以及与硬盘交换的数据。也是相当于CPU与硬盘沟通的桥梁。只要计算机在运行&#xff0c;CP…

【C++那些事儿】深入理解C++类与对象:从概念到实践(下)| 再谈构造函数(初始化列表)| explicit关键字 | static成员 | 友元

&#x1f4f7; 江池俊&#xff1a;个人主页 &#x1f525; 个人专栏&#xff1a;✅C那些事儿 ✅Linux技术宝典 &#x1f305; 此去关山万里&#xff0c;定不负云起之望 文章目录 1. 再谈构造函数1.1 构造函数体赋值1.2 初始化列表1.3 explicit 关键字 2. static成员2.1 概念…