当前位置: 首页 > news >正文

详细讲解java中的方法(适合新手小白)

上一文我们讲解了java中的类与实例。然后今天我们继续讲解java中的方法。

在讲解方法之前我们又要回顾一下上一文中的内容了。我们说类是模板,然后实例是使用模板创建出来的特例。比如人类是一个模板,然后使用人类这个模板创建出来一个小明和一个小红,然后我们在人类内规定,人都可以跑,都可以走,都可以跳这三个方法。小明,与小红都可以使用这个方法。这就是java中方法与现实世界的映射关系。这样是不是就很好理解了呢。

方法的定义

方法是类中定义的特定逻辑代码块,分为两种 —— 属于‘对象’的实例方法(getName/setName,需要 new 对象才能调用),和属于‘类’的静态方法(用 static 修饰,如 main 方法,直接用类名调用)

我们先看一段代码。

public class Animal {private String species; //动物的种类,如猫,狗private String name;  //动物的名字,如旺财,来福等private int age;  //动物的年龄}

这是我们上一文中中定义的动物类,首先大家看一下,我们这个类是公开的,外部是可以访问到的。然后我们定义的类内的字段,都是用private修饰,private其它类是无法访问这个类内的字段的,那么定义private修饰的字段还有什么作用呢?并且如果外部需要访问这个类内的字段,并且使用或者说给这些字段赋值不就是访问不了了吗。就像下面这样

public class Person {private String name;private int age;public static void main(String[] args) {Animal dog = new Animal();dog.name ="wangcai";System.out.println(dog.name);}
}

我们在person类中初始化一个dog实例,然后我们要给dog的name进行赋值。但是我们Animal类中的name字段是用private修饰的。这个时候就会报错。显示name字段是private。不能直接赋值。

那么这个时候,就需要运用到了方法。我们将一个类内的字段隐藏,然后将方法公开给外部使用。这就是java面向对象编程中的封装思想。

一个类隐藏了字段,但是可以给外部暴露public修饰的方法。这样外部就可以使用类规定的方法,来使用类内的一些字段。再看下面的代码。

public class Animal {private String species; //动物的种类,如猫,狗private String name;  //动物的名字,如旺财,来福等private int age;//动物的年龄public String getName(){  //定义获取动物名字的方法,访问修饰符使用publicreturn name;}public void setName(String name){  //定义设置动物名字的方法,也是publicthis.name=name;}
}

我们看到,在设置动物名的时候,不需要返回,所以使用void。我们在动物类的内部定义了两个public修饰的方法,分别是获取动物名,以及设置动物名。有了这两个方法。我们就可以使用这两个方法。如下代码所示,我们在person类中使用方法。

public class Person {private String name;private int age;public static void main(String[] args) {Animal dog = new Animal();dog.setName("wangcai");           //对dog实例的name进行设置System.out.println(dog.getName()); //打印dog的name}
}

可以看到,我们没有直接对Animal类内的字段进行使用,而是通过方法来进行间接的操作。

以上就是最简单的方法的演示。下面我们接着讲解方法的语法格式。

方法的使用语法格式

修饰符 返回值类型 方法名(参数列表) {

    // 方法体

    // 执行的代码

    return 返回值; // 如果有返回值

}

各部分说明:

  • 修饰符:public、private、protected、static等(public可省,static按需加);
  • 返回值类型:方法返回数据的类型,如int、String、void等(必须)
  • 方法命名:符合标识符命名规则,采用小驼峰命名法(必须)
  • 参数列表:传入方法的数据,可以有0个或多个参数(可选无参数时写(),不能省略括号)
  • 方法体:实现方法功能的代码
  • return语句:返回结果给调用者

 “main 方法是 Java 程序的入口,它也遵循方法的语法格式,但必须是public static void main (String [] args)’

在方法定义的时候如下代码

    public void setName(String name){this.name = name;}public String getName(){return name;}

这个里面的String name 是形参,不是实际的值,而当使用这个方法的时候如下

        Person ming = new Person();ming.setName("Ming");

这个时候传进去的"Ming" 就是实参,实际的参数,需要注意区分好形参还是实参。实参是实际的值

方法中的参数传递

然后我们来讲解一下方法中的参数传递。我们首先来讲解基本数据类型参数传递。如下代码

public class Person {private String name;private int age;public static void main(String[] args) {int a = 10;Person ming =  new Person();ming.setAge(a);System.out.println(ming.getAge());//输出ming的年龄为10a = 15;System.out.println(ming.getAge()); //输出ming的年龄为10}//以下为设置年龄和获取年龄的方法public void setAge(int age) {this.age = age;}public int getAge() {return age;}
}

可以看到,基本数据类型在我们介绍的时候,其中传递的值是变量的副本,当变量改变时,并不会改变我们第一次给实例设置年龄的值。

下面我们再来看一下引用数据类型的参数传递。

public class Person {private String name;private int age;public static void main(String[] args) {String n= "小明";Person ming = new Person();ming.setName(n);System.out.println(ming.getName()); //输出小明n= "xiaoming";System.out.println(ming.getName());//输出小明}//以下为设置name方法和获取name方法public void setName(String name){this.name = name;}public String getName(){return name;}}

上面这个例子可能会有人会疑问,为什么还是输出小明。其实这里我们之前在讲解引用数据类型的时候,就已经讲解过了。首先String引用数据类型,创建之后就不会再改变了,当重新给n进行赋值时,并不是在原本的地址上面进行赋值,而是在内存中新开了一块地址来存储"xiaoming",所以,当我们打印输出n的时候,输出结果会改变,但是并不影响之前的传给name的地址,因为地址还在那,对应的小明的值也在那。这样是不是很好理解呢。

以上就是本期对方法的讲解。

声明:本文无任何商用目的,纯粹的分享学习交流,欢迎大家指正文中出错以及不足的地方,相互交流学习,共同进步。

http://www.dtcms.com/a/504503.html

相关文章:

  • vip解析网站怎么做网络搜索词排名
  • 最新网站域名如何寻找网站建设需求客户
  • 河北网站建设推广如何制作活动宣传网页
  • Linux memfree 的计算逻辑
  • 宁波网站建设软件开发医药公司网站建设备案
  • 一 网站建设的目的和目标辽宁网站建站优化公司
  • 网站开发本地环境seo排名怎么做
  • 网站首页置顶是怎么做单页展示网站
  • 微信网页上的网站怎么做的网站响应时间方案
  • ScheduledExecutorService
  • 网站首页新世纪建设集团有限公司长沙网站seo收费
  • 网站优化的论文pc网站建设企业
  • 各个视频网站怎么做原创作者南宁市建筑规划设计集团有限公司
  • 探索Word2Vec:从文本向量化到中文语料处理
  • 性能测试 | 认识性能测试的概念以及应用
  • 小企业网站建设论文东莞网站建设设计
  • 第23讲:文件操作
  • 网站如何不需要备案免费发广告的软件有哪些
  • 网站制作 需要什么网络技术唯品会网站建设特色
  • 如何提高网站点击率dns网站建设
  • 响应式布局的原理网站meta 优化建议
  • 网站建设设计收费网络销售面试问题有哪些
  • mysql8支持远程访问 -mysql5.7支持远程访问
  • DeepSeek+FastGPT+Xinferenc打造企业级知识库
  • 营销型网站费用软件工程35岁就失业吗
  • 开发个网站开票名称是什么意思项目网上备案
  • 2025年-集合类面试题
  • 商城网站静态模板下载安徽安庆天气预报15天
  • 网站任务界面wordpress实例网址
  • Python网络编程调用CnOCR文字识别教程