JAVA中的数据类型和方法重载

本文详细介绍了Java的基本数据类型和引用数据类型,包括它们之间的转换规则。此外还深入探讨了方法的概念,包括方法的定义、调用及重载等内容。

1,JAVA中的数据类型

基本数据类型

4类8种

整数

byte short  int  long

浮点数

float double

字符

char

布尔

boolean


2,引用数据类型

Student  s=new Student();

基本数据类型的转换

自动类型转换

byte  short char -----int ----- long -----float------double

由大到小

byte b=10;

int a=b;

强制类型转换(有可能损失精度)

一般由大到小

int a=300;

byte b=(byte)a;  //有可能损失精度


3,方法

方法的概述

什么是方法:完成特定功能的代码块

优点:提高代码的复用性

方法的定义格式

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

方法体;

// return 语句;

}

修饰符:public  static

返回值类型:和return语句返回值的类型要一致

方法名:见明知意,命名规范

参数列表:方法要完成功能所需要的数据

方法体:方法功能的核心

return语句:返回结果,结束方法


4,方法两个明确

有明确返回值类型的

方法的调用

(1)有返回值的方法,直接调用

sum(10,20);

(2)输出调用

system.out.println(sum(10,20));

(3)赋值调用

int resukt=sum(10.20);

没有明确返回值类型

(1)无返回值的方法,直接调用

sum(10,20);



5,方法的重载

在一个类中,方法名相同,参数列表不同(参数的个数不同,数据的类型不同)

add(int a,String b)

add(String a,String b)

方法的参数传递

参数的分类:

形式参数(形参):定义方法时确定的参数,定义形参在括号中

add(String a,int b)

实际参数(实参):

add(“asda”,2);

方法的参数可以是基本类型,也可以是引用类型

基本类型:传递的是一个值

引用类型:传递的是一个地址值








### 方法重写与方法重载的区别及使用场景 在Java中,方法重写(Override)方法重载(Overload)是两个重要的面向对象编程概念。它们各自有不同的特点、用途以及适用场景。 #### 方法重载(Overload) 方法重载是指在一个类中定义多个方法名相同但参数列表不同的方法。编译器根据调用时传递的参数数量类型来决定调用哪个具体的方法[^1]。以下是方法重载的一些关键点: - 方法名必须相同。 - 参数列表必须不同,可以体现在参数的数量、类型或顺序上。 - 返回值类型可以不同,但这不是区分方法重载的主要依据。 - 方法重载发生在同一个类中。 以下是一个方法重载的例子: ```java public class MethodOverloadingExample { public void printMessage(String message) { System.out.println("Message: " + message); } public void printMessage(int number) { System.out.println("Number: " + number); } public void printMessage(String message, int times) { for (int i = 0; i < times; i++) { System.out.println(message); } } } ``` #### 方法重写(Override) 方法重写是指子类重新定义父类中的方法,以提供更具体的实现。重写方法的特点包括[^2]: - 方法名、参数列表返回类型必须与父类中的方法完全一致。 - 子类可以通过`@Override`注解来明确表示该方法是对父类方法的重写。 - 方法重写适用于继承关系,并且支持多态性,允许父类引用指向子类对象时调用子类的方法。 以下是一个方法重写的例子: ```java public class Shape { public void display() { System.out.println("This is a shape"); } } public class Rectangle extends Shape { @Override public void display() { System.out.println("This is a rectangle"); } public void display(String color) { System.out.println("This rectangle is " + color); } } ``` #### 区别与使用场景 | **特性** | **方法重载** | **方法重写** | |--------------------|------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------| | **作用范围** | 同一个类内 | 继承关系中,子类对父类方法的重新定义 | | **方法签名** | 方法名相同,参数列表不同 | 方法名、参数列表返回类型必须与父类方法完全一致 | | **返回值类型** | 可以不同 | 必须与父类方法一致,或者为协变返回类型 | | **访问修饰符** | 不受限制 | 子类方法的访问修饰符不能比父类方法更严格 | | **多态性支持** | 不支持多态 | 支持多态,允许父类引用调用子类方法 | | **典型使用场景** | 当需要对同一功能提供多种实现方式时,例如处理不同类型的数据 | 当需要对父类方法的功能进行扩展或修改时 | #### 使用场景 - **方法重载**:当需要针对不同的参数类型或数量提供不同的行为时,比如一个打印消息的方法可以根据输入的参数类型不同而执行不同的逻辑[^1]。 - **方法重写**:当需要在子类中对父类方法的行为进行扩展或修改时,比如子类`Rectangle`重新定义了父类`Shape`的`display`方法以展示更具体的信息[^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值