Java:类、方法的定义及调用、重载

本文深入解析了面向对象编程的基础概念,如类的构造、属性与方法,重点介绍了方法的定义、重载规则,并探讨了静态方法和静态变量的特性。通过实例演示了如何使用类和方法来组织代码,以及方法重载在提高代码复用性和维护性的作用。
摘要由CSDN通过智能技术生成

1、面向对象与面向过程

1、面向过程适合处理一些较为简单的问题

2、面向对象过程适合处理一些复杂的问题,适合处理多人协作的问题。

3、面向对象编程本质就是:以类的方式组织代码,以对象的组织(封装)数据

4、二者都是一种思想,面向对象是相对于面向过程而言的。面向过程,强调的是功能行为。面向对象,将功能封装进对象,强调具备了功能的对象。

2、类(class)

Java是由类组成的,类包含对象的属性和功能(方法);

2.1 类的语法格式

修饰符 class 类名{    
	属性声明;
	方法声明;
}

属性声明: 修饰符 类型 属性名 = 初值;

​ 1、修饰符private:该属性只能由该类的方法访问。

​ 2、修饰符public:该属性可以被该类以外的方法访问。

​ 3、初值如果不确定可以先不赋值。


方法声明:修饰符 返回值类型 方法名(参数列表){
方法体语句;
}

1、如果返回值类型不为void,则需要return语句传递返回值。

3、方法

3.1 方法是什么

通俗一点来说:在我们的日常生活中,方法可以理解为要做某件事情,而采取的解决办法。在Java中则是为了实现某种功能的,可以被重复调用的代码段。

3.2 方法的优点

1、使用方法可以提高代码的复用性:

因为它是定义在类里面方法外面,只有调用的时候才会执行,而且可以被重复使用,以用来实现某种独立的功能;

2、方法便于后期维护:

每个方法块都是独立的,便于后期修改内容;

3.3 方法的定义:

3.3.1 定义方法的分析步骤

1.方法的需求

2.返回值---------是否有返回值,什么数据类型

3.参数------------是否需要定义参数

4.方法名---------见名知意

3.3.2 方法的分类:

有返回值类型的方法

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

	实现功能的代码段;

	return 返回值;

}

无返回值类型的方法

修饰符 void 方法名(参数列表){
           方法体语句;
           return;
}

修饰符:

表示访问权限修饰符,一般默认为public static;

返回值类型:

方法体代码执行完毕之后,是否需要得到一个结果或者数据值,如果需要就定义为有返回值类型的方法,不需要就定义为没有返回值类型的方法;

方法名:

用来调用该方法使用的标识符,遵循标识符的命名规范,驼峰命名法;

参数列表:

可以定义参数,可以不定义参数,可以定义多个参数;

如果在方法的实现过程中存在未知、不确定、可能会改变的数据,那么就定义在方法的参数列表上,定义参数和定义变量的格式相同,可以为任意的数据类型;

参数分类:

1.形式参数(形参) : 定义方法时()中的参数

2.实际参数(实参) : 调用方法时()中的参数

形参与实参之间需要一一对应,个数一致,类型一致,不同类型的形参顺序一致;

tips:1、形参如果不赋值,是没有默认值的;

	   2、接收返回值类型的变量同样适用于自动类型转换,也就是大类包括小类;
3.3.3 return

有两个作用:1、提前结束方法,2、带出返回值给到调用处;

tips:1、在一个有返回值类型的方法必须 存在return关键字;

	   2、return后面执行不到的语句会报错,没有执行时机,为不可达语句;

3.4 方法的调用

1、普通调用: 方法名(参数列表);

有返回值类型的方法调用时候需要接收返回值

没有返回值类型的方法,只能使用普通调用!!

2、赋值调用

数据类型 变量名 = 方法名(参数列表);

System.out.println(变量名);

3、输出调用

System.out.println(方法名(参数列表));
public class Class001_Method {
    //类中方法外的位置
    public static void main(String[] args) {
        //赋值调用
        double d = getPI();
        System.out.println(d);

        //输出调用
        System.out.println(getPI());

        System.out.println(getSum(3,5));

        //普通调用:无法接受返回值
        getPI();
    }

3.5 方法的重载

3.5.1 方法重载的前提

当一个类中实现某个功能的时候,这个功能却有不同的实现方式或者需要接受不同的参数,可以让这些相同功能实现的方法,这就构成方法的重载;多个方法的方法名相同。

3.5.2 方法重载的要求

1、同一个类中的多个方法

2、方法名相同

3、参数列表不同(也叫做方法签名不同,方法签名就是方法名+参数列表)

tips:参数列表不同具体表现在:参数个数不同、参数的类型不同、不同类型的参数顺序不同;

3.5.3 方法重载的调用

在调用处输入方法名(实参),由输入的实参(数量、数据类型等等)决定重载方法的调用;

public static void main(String[] args) {
        getSum(1,1.1);
    }
    //对数求和
    public static void getSum(int x,int y){
        System.out.println("两个int类型参数的和"+(x+y));
    }

    public static void getSum(int x,int y,int z){
        System.out.println("三个int类型参数的和"+(x+y+z));
    }

    public static void getSum(int x,double y){
        System.out.println("一个int,一个double类型参数的和"+(x+y));
    }

    public static void getSum(double y,int x){
        System.out.println("一个double,一个int类型参数的和"+(x+y));
    }

3.6 static关键字(静态修饰符)

static 静态的
成员修饰符 : 只能修饰成员位置的内容,不能修饰局部
修饰变量 : 静态变量|类变量
修饰方法 : 静态方法|类方法
修饰块 : 静态块
修饰类 : 静态内部类

    静态内容的使用:
                1.跟随类名使用
                    类名.静态变量名
                    类名.静态方法名(参数列表);
                2.跟随对象使用
                    引用.静态变量名
                    引用.静态方法名(参数列表);

    成员是是属于对象的
    静态的是属于类的

    成员变量 :
        被static修饰的变量 --> 静态变量|类变量
        不被static修饰的变量 --> 实例变量
    成员方法:
        被static修饰的方法 --> 静态方法|类方法
        不被static修饰的方法 --> 实例方法

注意:
this只能使用在非静态环境中

​ 在非静态方法中使用this,默认指代当前调用实例方法的对象

​ 静态内容是独一份的,静态变量存在与静态区中,多个对象共享的资源

​ 成员内容跟随对象存在与对象的堆内存中,多个对象,就有多份成员

​ 初始加载顺序: 先静态后成员

​ 静态内容在类第一次加载完成之后就会进行初始化

​ 成员变量必须在执行到new对象的时候,才会存在对象的堆内存,在对象的堆内存中才会有成员变量

4、递归:

定义:在方法定义中调用方法本身

4.1 递归的优缺点:

优点:用在合理的位置可以简化代码结构;

缺点:如果代码结构复杂,可能会大量占用内存,造成内存溢出,降低效率。

临界条件: 停止自己调用自己的条件

递归前进段: 不停的自己调用自己,知道临界条件之间这个过程

递归后退段: 从临界条件开始,将结果返回给调用的上一层的过程

public static void main(String[] args) {
        System.out.println(recursion(3));;
    }
    //递归 : 求某个数阶乘   5! = 5*4!
    //返回值: 需要 int
    //参数: int i
    public static int recursion(int i){
        //临界条件
        if(i==1){
            return 1;
        }
        return i * recursion(i-1);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值