Java的方法定义及格式代码举例

本文深入解析Java中方法的定义与调用机制,包括方法格式、参数、返回值等核心概念,通过实例演示如何实现两个整数相加的功能。
方法的定义及格式
   简单来说:方法就是完成特定功能的代码块
   函数在Java中被称为方法
格式:
    修饰符 返回值类型 方法名(参数类型 参数1,参数类型 参数2…………){
		函数体;
		return 返回值;
	}
//详细解释:
      修饰符:目前就用 public static.后面再讲详细的解释其他的修饰符
      返回值类型:就是方法结果的数据类型。
	  方法名:符合命名规则即可,方便我们调用
	  参数:
	      实际参数:就是实际参与运算的
		  形式参数:就是方法定义的 用于接受实际参数的
	  参数类型:就是参数的数据类型
      参数名:变量名
	  方法体语句:就是完成功能的代码
	  return:结束方法的
	  返回值:就是功能的结果,由return带给调用者
  /*要想写好一个方法,就必须两个东西
     A :  返回值类型
	       结果的数据类型
	 B :参数列表
	     你要传递几个参数,以及每个参数的数据类型
	*/
//需求:求两个数据之和的案例
分析:返回值类型:int
       参数列表:两个 都是int类型
//方法的执行特点:
        不调用,不执行 	
方法 例子:
class Li{
	public static void main(String[] args){
		public static int sum(int a,int b){
			
			return:x=a+b;
		}
		
	}
}  

Java方法调用之有明确的返回值的讲解和代码示例
Java方法调用之无明确的返回值的讲解和代码示例

<think>嗯,用户想了解Java方法重写的示例及其作用。首先,我需要回忆一下方法重写的基本概念。方法重写是子类重新定义父类中已有的方法,以实现多态性。那用户可能已经知道继承的基础,但需要具体例子来理解重写的作用。接下来,我应该从简单示例开始。比如,父类有一个方法,子类覆盖它。比如Parent类有display方法,Child类重写它,这样调用时会执行子类的方法。这能展示多态的基本应用。这时候需要确保代码示例正确,语法正确,比如使用@Override注解,以及参数和返回类型一致。 然后,用户可能想知道实际应用场景。比如在集合框架中,equals和toString方法的重写。例如,重写equals来比较对象内容而不是引用,这样自定义对象才能正确判断相等性。需要引用提供的例子中的Person类,展示如何正确重写equals,包括检查null、类型和字段比较。另外,可能还要提到动态方法分派,也就是运行时根据对象类型决定调用哪个方法。这涉及到多态的核心机制,可以举一个父类引用指向子类对象的例子,说明运行时行为。 还要注意方法重写的规则,比如访问修饰符不能更严格,参数列表必须一致,返回类型如果是引用类型则可以是子类等。但用户的问题可能更关注示例和作用,所以规则部分可以简要提及,引用已有的资料。 用户可能存在的疑问是,为什么要重写方法?比如扩展功能,比如父类的方法实现不满足子类需求时,比如动物类的sound方法,子类Dog和Cat各自实现不同的叫声。这能展示重写带来的灵活性。 需要确保回答结构清晰,分点说明,示例代码正确,用中文解释。同时,根据用户提供的引用,特别是引用[1]、[3]、[4]中的例子,整合到回答中,并正确标注引用标记。比如在讲多态时引用动态方法分派的例子,或者在讲equals重写时引用Person类的例子。 最后,生成相关问题需要考虑用户可能的后续疑问,比如重写与重载的区别,规则细节,应用场景等。相关问题要引导用户深入理解,比如性能影响、常见错误、设计模式中的应用等。 需要检查是否有遗漏,比如是否覆盖了所有用户需求,示例是否足够,作用是否解释清楚。确保使用正确的LaTeX格式,行内公式用$...$,独立公式单独成段,但这里可能不需要数学公式,所以重点在代码和结构上。</think>### Java方法重写的示例及作用 #### 一、方法重写的定义 方法重写(Override)是子类对父类中**相同名称、参数列表和返回类型**的方法进行重新实现的过程,用于满足子类特定需求或修改父类行为[^2]。 --- #### 二、基础示例 **父类与子类定义**: ```java class Animal { public void sound() { System.out.println("动物发出声音"); } } class Dog extends Animal { @Override public void sound() { System.out.println("汪汪叫"); } } ``` **调用示例**: ```java Animal myDog = new Dog(); myDog.sound(); // 输出"汪汪叫"(体现运行时多态性)[^3] ``` **作用**: 1. **多态性**:父类引用指向子类对象时,实际调用子类重写的方法[^3] 2. **功能扩展**:子类可基于父类方法添加新逻辑(如日志记录、权限校验) --- #### 三、实际应用场景 ##### 1. 对象相等性判断(`equals`方法) ```java class Person { private String name; private int age; @Override public boolean equals(Object obj) { if (this == obj) return true; // 引用相同直接返回true if (obj == null || getClass() != obj.getClass()) return false; // 类型检查 Person person = (Person) obj; // 强制类型转换 return age == person.age && Objects.equals(name, person.name); // 属性比对[^4] } } ``` **作用**: - 自定义对象的内容比较(默认`equals`仅比较内存地址) ##### 2. 对象描述标准化(`toString`方法) ```java class Student { private String id; private String major; @Override public String toString() { return "学号:" + id + ",专业:" + major; } } ``` **作用**: - 输出对象时自动生成结构化信息(如日志打印、调试) --- #### 四、方法重写规则 1. **访问权限**:子类方法访问修饰符不能比父类更严格(如父类为`protected`,子类可为`public`,但不能为`private`) 2. **异常处理**:子类方法抛出的受检异常不能超过父类方法范围 3. **返回值类型**:若返回引用类型,可以是父类方法返回类型的子类(协变返回类型)[^2] ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Unknown To Known

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值