• 学习Java的第九天


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

    一、什么是类的无参方法

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

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

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

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

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

    语法格式:

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

    示例:

    1. public class Programmer { //创建类
    2. String name = "爱编程";
    3. //吃饭方法
    4. public void eat(){
    5. System.out.println("晚饭时间,吃烧烤!");
    6. }
    7. //睡觉方法
    8. public void sleep(){
    9. System.out.println("夜深了,好好睡觉!");
    10. }
    11. //编写代码方法
    12. public String writeCode(){
    13. String code = "代码";
    14. return code;
    15. }
    16. }

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

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

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

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

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

    语法格式:

    return 表达式;
    

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

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

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

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

    5、方法调用

    语法格式:

    对象名.方法名();

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

    示例:

    1. public class Programmer { //创建类
    2. String name = "爱编程"; //声明String类型的变量并且赋值
    3. //吃饭方法
    4. public void eat(){
    5. System.out.println("晚饭时间我喜欢去吃烧烤!");
    6. }
    7. //睡觉方法
    8. public void sleep(){
    9. System.out.println("夜深了,我会好好睡觉!");
    10. }
    11. //编写代码方法
    12. public String writeCode(){
    13. String code = "编写代码";
    14. return code;
    15. }
    16. /*获得名字*/
    17. public String getName() {
    18. return name;
    19. }
    20. /*显示信息*/
    21. public String showProgrammer(){
    22. return "我的名字叫" + getName() + "," + "是一名程序员.";
    23. }
    24. }

    测试类:

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

    运行结果:

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

    6、常见错误:

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

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

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

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

    二、类的带参方法

    语法格式:

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

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

    示例:

    1. public class StudentBiz { //创建类
    2. String[] names = new String[30]; //创建学生姓名数组
    3. public void addNmae(String name){ //有参方法
    4. //增加学生姓名
    5. }
    6. public void showName(){ //无参方法
    7. //显示学生姓名
    8. }
    9. }

    测试类: 

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

    运行结果: 

    三、带多个参数的方法

    示例:

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

    运行结果:

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

  • 相关阅读:
    【SEO学习】技术总结
    BF算法与KMP模式匹配算法(画图详解,C语言实现)
    MD5 到底算不算一种加密算法?
    彻底解决全局安装权限问题
    【深度学习】3-从模型到学习的思路整理
    Information Bottleneck【信息瓶颈IB】
    写作作业一
    【云原生之Docker实战】使用Docker部署部署DoClever开源接口管理平台
    FTP服务器:ExpanDrive Mac
    关于“找不到mfc140u.dll,无法继续执行代码”问题的分析处理方法
  • 原文地址:https://blog.csdn.net/AE_BD/article/details/136689280