java从入门到起飞(四)——类中包含的内容:方法、属性

引言

    学习类中的结构可以帮助我们更好地理解面向对象编程的思想和原则,提高代码的可维护性、可复用性和可扩展性。它是构建大型应用程序和系统的基础,也是提高编程能力和代码质量的重要一步。

什么是类

    在Java中,类是一种重要的程序组织结构,它是一种用来封装数据和方法的模板或蓝图。类可以看作是一种自定义类型,用于描述具有相同属性和行为的对象。Java是一种面向对象的编程语言,它的核心就是类和对象,因此类在Java中具有非常重要的地位。

组成

1、类的修饰符:类的修饰符指定了该类的访问级别和特性,比如public、private、abstract等。

2、类名:类名是一个唯一的标识符,用于区分不同的类。

3、类的父类:Java中的类支持继承机制,一个类可以从另一个类继承特性,继承的类称为父类,被继承的类称为子类。

4、类的成员变量:成员变量是类的属性,它们用于描述该类的状态和特征。

5、类的方法:方法是类的行为,它们用于描述该类的动作和行为。

6、构造方法:构造方法是一种特殊的方法,用于创建类的对象,通常与类名相同。
    在Java中,一个类的定义通常写在一个以类名命名的.java文件中,类文件中可以包含一个或多个类的定义。一个类可以包含多个构造方法和多个成员方法,其中每个方法也有自己的访问修饰符、方法名和参数列表。

方法

什么是方法

     方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集。
注意:
方法必须先创建才可以使用,该过程称为方法定义。
方法创建后并不是直接运行的,需要手动使用后才执行,该过程称为方法调用。
方法定义:
格式:

public static void 方法名(){
	//方法体
}

范例:

public static void isEvenNumber(){
	//方法体
}

方法调用
    格式:在本类中调用:方法名();在其他类中调用,如果方法是静态的,调用方式是:类名.方法名();如果方法不是静态,调用方式是:对象.方法名();
    范例:在本类中调用:isEvenNumber();在其他类中调用,如果方法是静态的,调用方式是:Number.isEvenNumber();如果方法不是静态,调用方式是:Number num=new Number();num.isEvenNumber();
注意:方法必须先定义后调用,否则程序将报错。

参数

什么是参数

    在Java中,参数是一种用于传递给方法或构造函数的值。它们可以用于向方法提供所需的信息,以便方法可以执行特定的操作。参数允许我们向方法传递数据,并且可以在方法内部使用这些数据进行计算、操作或返回结果。

形参和实参

    Java中的参数可以分为两种类型:形式参数和实际参数。
1、形式参数(形参):在方法定义中声明的参数,也称为形参。它们是方法签名的一部分,用于指定方法所需要的输入。形参只有在方法被调用时才会被赋值,并且其值可以在方法内部使用。

2、实际参数(实参):在方法调用时传递给方法的值,也称为实参。实参是具体的数值或变量,它们会被赋值给方法的形参,以便方法可以使用这些值进行计算或操作。
例如,下面是一个简单的方法,它接受两个整数作为参数并返回它们的和:

public int add(int num1, int num2) {
    int sum = num1 + num2;
    return sum;
}

    在这个例子中,num1和num2是方法的形参,用于接收传递给方法的实际参数。当方法被调用时,可以传递具体的整数值作为实参,例如add(5, 3),这样方法就会返回8。

值传递和引用传递

    在Java中,参数传递可以分为值传递和引用传递。
1、值传递(Pass by Value):在值传递中,方法的参数是基本数据类型(值类型)时,将实际参数的值复制给形式参数,方法内部对形式参数的修改不会影响到实际参数。
例如:

public void changeValue(int num) {
    num = 10;
}
int num1 = 5;
changeValue(num1);
System.out.println(num1); // 输出 5

在上述例子中,num1是一个基本数据类型的变量,当它作为实参传递给changeValue方法时,方法内部对形参num的修改不会影响到num1的值。
2、引用传递(Pass by Reference):在引用传递中,方法的参数是引用类型时,将实际参数的引用复制给形式参数,方法内部对形式参数的修改会影响到实际参数。
例如:

public void changeValue(int[] arr) {
    arr[0] = 10;
}
int[] arr1 = {5, 6, 7};
changeValue(arr1);
System.out.println(arr1[0]); // 输出 10

    在上述例子中,arr1是一个数组类型的变量,当它作为实参传递给changeValue方法时,方法内部对形参arr的修改会影响到arr1中的元素。
    需要注意的是,Java中的所有参数传递都是值传递。对于引用类型的参数,实际传递的是引用的副本,而不是引用本身。因此,当我们对引用类型的参数进行修改时,实际上是修改了引用所指向的对象。这种修改可以在方法内部反映出来,但不会影响到实际参数引用的对象本身。

返回值

什么是返回值

    在Java中,方法可以有返回值。返回值指的是方法执行完毕后,将一个值返回给调用该方法的地方。

1、基本数据类型的返回值

方法可以返回基本数据类型(如int、double、boolean等)的值。在方法声明时,需要在方法名前面指定返回类型,并使用return关键字将要返回的值返回。

public int add(int num1, int num2) {
    return num1 + num2;
}
int result = add(5, 3);
System.out.println(result); // 输出 8

在上述例子中,add方法返回两个整数的和,返回类型为int。在方法体中,使用return关键字将计算结果返回给调用方。

2、引用类型的返回值

方法也可以返回引用类型(如类、接口、数组等)的值。在方法声明时,需要在方法名前面指定返回类型,并使用return关键字将要返回的对象返回。
例如:

public String concatenate(String str1, String str2) {
    return str1 + str2;
}
String result = concatenate("Hello", "World");
System.out.println(result); // 输出 "HelloWorld"

    在上述例子中,concatenate方法返回两个字符串的拼接结果,返回类型为String。在方法体中,使用return关键字将拼接结果返回给调用方。
    需要注意的是,如果方法声明了返回值类型,就必须在方法体中使用return语句返回一个值。如果方法没有返回值,可以使用void作为返回类型,并省略return语句。此外,方法的返回值可以是null,表示没有返回任何有效值。

属性

什么是属性

    在Java中,属性可以分为局部变量和全局变量(也称为类变量或静态变量)两种类型。

局部变量

    局部变量是在方法、构造函数或代码块内部定义的变量。它们只在声明它们的方法、构造函数或代码块内部有效,超出其作用范围后将被销毁。局部变量必须在使用之前进行初始化,否则编译器会报错。
例如:

public class Example {
    public void printMessage() {
        String message = "Hello"; // 局部变量
        System.out.println(message);
    }
    public void printNumber() {
        int number = 10; // 局部变量
        System.out.println(number);
    }
}

在上述例子中,printMessage方法和printNumber方法中分别声明了一个局部变量message和number。这些局部变量只在各自的方法内部有效,不能在其他方法中访问。

全局变量

    全局变量是定义在类中,方法外部的变量,使用static关键字修饰。全局变量属于类本身,而不是对象。全局变量在类加载时被初始化,并在整个程序运行期间存在。全局变量只有一份拷贝,所有对象共享同一个全局变量。
例如:

public class Counter {
    static int count; // 全局变量
}
Counter.count = 0; // 类名.全局变量名
Counter counter1 = new Counter();
counter1.count++; // 对象名.全局变量名
Counter counter2 = new Counter();
counter2.count++; // 对象名.全局变量名
System.out.println(Counter.count); // 输出 2

    需要注意的是,全局变量可以通过类名或对象名进行访问。全局变量属于类的状态,可以在类的任何方法中访问和修改。而局部变量只在声明它们的方法、构造函数或代码块内部有效。

总结

    此篇博客介绍了在一个完整的类中,由哪些部分组成,详细的描述和实例对方法和属性进行了深入的研究,希望朋友们能有所收获。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

杨思默

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

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

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

打赏作者

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

抵扣说明:

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

余额充值