学习Java的第九天

news2025/1/15 19:57:17

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

一、什么是类的无参方法

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

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中的Scanner
        System.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.coloradmin.cn/o/1513786.html

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

相关文章

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

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

走进AI新时代:织信低代码的实践与启示

最近 AIGC 很火&#xff0c;在各个领域都玩出了一些新花样。 比如在“低代码”领域&#xff0c;可以通过 AI 自动生成一个网站门户。 但这会带来开发效率的提升吗&#xff1f;如果 AI 能快速开发网站、APP等业务应用&#xff0c;那么 AI 生成能否完全取代低代码的可视化配置&a…

Java学习笔记------常用API

Math类 常用方法&#xff1a; 1. publicb static int abs(int a) 获取参数绝对值 2. publicb static double ceil(double a) 向上取整 3. publicb static floor(double a) 向下取整 4.public static int round(float a) 四舍五入 5. publicb static int max…

慎投!又新增1区SCI期刊被“On Hold”,共15本期刊正在调查中!

【SciencePub学术】近日&#xff0c;经小编查询&#xff0c;又新增一本SCI期刊被“暂停调查”&#xff01;该期刊隶属于TAYLOR & FRANCIS旗下&#xff0c;是一本JCR1区中科院4区的预警期刊。期刊详情如下&#xff1a; 01 新增“On Hold”期刊详情 BIOENGINEERED ISSN&…

【系统架构设计师】系统工程与信息系统基础 01

系统架构设计师 - 系列文章目录 01 系统工程与信息系统基础 文章目录 系列文章目录 前言 一、系统工程 ★ 二、信息系统生命周期 ★ 信息系统建设原则 三、信息系统开发方法 ★★ 四、信息系统的分类 ★★★ 1.业务处理系统【TPS】 2.管理信息系统【MIS】 3.决策支持系统…

java算法第22天 | ● 235. 二叉搜索树的最近公共祖先 ● 701.二叉搜索树中的插入操作 ● 450.删除二叉搜索树中的节点

235. 二叉搜索树的最近公共祖先 思路&#xff1a; 之前做过普通二叉树求共工作祖先的问题&#xff0c;有两种情况&#xff0c; 第一种是&#xff1a;如果一个节点的左孩子和右孩子分别包含p&#xff0c;q节点&#xff0c;那么这个节点是p和q的最近公共祖先。第二种是&#xff…

C++17中引入STL算法执行策略

C算法是一组预定义函数&#xff0c;可以对容器(例如数组、向量和列表)执行各种操作。这些算法具有定义的执行策略(have a defined execution policy)&#xff0c;决定它们如何执行以及如何与底层硬件交互。STL算法执行策略首先在C17标准中引入。 C17标准引入了三种新的执…

07 数据结构之图

# Makefile CCgcc CFLAGS -g -Wall SRCStest.c graph.c link_queue.c OBJS$(SRCS:.c.o) #variable replace APPtestall:$(OBJS) #指定一个目标&#xff0c; 不然默认目标不会检查依赖文件的时间戳$(CC) $(SRCS) -o $(APP) .PH…

Docker安装Prometheus监控

环境初始化 关闭防火墙 setenforce 0 vim /etc/selinux/config ##################内部代码################### SELINUXdisabled #关闭防火墙 ############################################ 安装docker #卸载yum源之前的docker安装包 sudo yum remove docker docker-clie…

如果你准备进入安全行业,入门应该做的

教育阶段 网络安全是一门高级学科。网络安全人员通常来自三个领域&#xff1a;系统管理、网络、开发。 假设你没有任何这些方面的背景&#xff0c;并且你需要从零开始。如果你在学生阶段的年龄&#xff1f; 这时有三种方法可选&#xff1a;大学、职业学校、资质证书 建议读计…

意大利数据监管机构对Sora展开调查

意大利数据保护监管机构 Garante3月8日宣布&#xff0c;将对 OpenAI 新推出的视频人工智能模型 Sora 展开隐私调查。 监管机构虽然没有对 OpenAI 提出任何具体指控&#xff0c;但表示正在研究 Sora 对意大利&#xff08;包括欧盟&#xff09;个人数据使用可能产生的潜在影响&am…

OceanBase中binlog service 功能的试用

OBLogProxy简介 OBLogProxy即OceanBase的增量日志代理服务&#xff0c;它可与OceanBase建立连接并读取增量日志&#xff0c;从而为下游服务提供了变更数据捕获&#xff08;CDC&#xff09;的功能。 关于OBLogProxy的详尽介绍与具体的安装指引&#xff0c;您可以参考这篇官方OB…

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

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

unicloud delete 删除

delete 删除 unicloud 删除大概分为两种 一种是 通过指定文档ID删除 语法如下 collection.doc(_id).remove()还有一种是条件查找文档然后直接批量删除 语法如下 collection.where().remove()反正总归是先查找到指定数据,然后使用remove()函数删除 示例如下 collection.doc(…

软件应用实例,宠物医院处方笺模板实例,佳易王兽医电子处方开单管理系统软件操作教程

软件应用实例&#xff0c;宠物医院处方笺模板实例&#xff0c;佳易王兽医电子处方开单管理系统软件操作教程 一、前言 以下软件程序操作教程以佳易王兽医电子处方软件V17.0为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 1、兽医宠物店开电子处…

初识C++类和对象(1)

1.定义类 我们使用class进行表示类&#xff0c;class后面的是类名rect&#xff0c;在类里面我们可以定义成员变量&#xff0c;这个题目我们是要去求长方形的周长和面积&#xff0c;我们定义长方形的长&#xff0c;和长方形的宽度&#xff1b; 我们定义了2个函数计算长方形的周…

电视盒子什么品牌好?测评工作室揭晓电视盒子品牌排行榜

电视盒子是日常生活中最常见的&#xff0c;它有着不可取代的重要地位。每年我们会进行电视盒子的深度测评&#xff0c;最近我们的测评主题是电视盒子什么品牌好&#xff0c;购入了十几个电视盒子品牌旗下的产品&#xff0c;通过对比后总结了电视盒子品牌排行榜&#xff0c;想买…

金融需要多样性,量化需要C++!通过本文,你可以知道:1、为什么是C++

通过本文&#xff0c;你可以知道&#xff1a; 1、为什么是C 2、Python的用武之地 3、量化C岗位薪酬水平 C VS Python 量化交易系统开发语言主要用C&#xff0c;也有人用Python。 但是从经验看&#xff0c;用C开发的量化交易系统能够让在系统中程序运行的速度更快。 量化交易…

详细理解Transformer

上一篇文章中&#xff0c;我们解读了Transformer中的Self-Attention的实现细节&#xff0c;这篇文章中&#xff0c;就Transformer的整体做一个算法解读。 首先&#xff0c;我们还是把Transformer的架构图贴出来&#xff0c;作为本篇内容的抓手。 从图中我们可以看到&#xff0…

迷茫了!去大厂还是创业?

大家好&#xff0c;我是麦叔&#xff0c;最近我创建了一个 学习圈子 有球友在 星球 里提问。 大厂的layout岗位和小厂的硬件工程师岗位&#xff0c;该如何选择&#xff1f; 这个问题我曾经也纠结过&#xff0c;不过现在的我&#xff0c;I am awake&#xff01; 肯定是有大点大。…