面向对象【成员变量与局部变量、方法声明与作用】

这篇具有很好参考价值的文章主要介绍了面向对象【成员变量与局部变量、方法声明与作用】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

面向对象【成员变量与局部变量、方法声明与作用】

成员变量

Java中的成员变量是指类中声明的变量,也称为实例变量或属性。它们与方法一样属于类的成员,不同之处在于,它们存储在对象(堆)中而不是栈中,并且每个对象都有自己的一组值。

成员变量可以用来描述一个对象的状态,例如人的年龄、学生的姓名等。它们可以具有public、private、protected和默认(即没有修饰符)四种访问权限。

在Java中,如果没有显式地初始化成员变量,则它们将自动地初始化为其类型的默认值,如int类型变量默认值为0,引用类型变量默认值为null。

public class Person {
    public String name; //public访问权限
    private int age; //private访问权限

    //构造方法
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    //成员方法
    public void sayHello() {
        System.out.println("My name is " + name + ", I'm " + age + " years old.");
    }
}

局部变量

Java中的局部变量是声明在代码块(比如方法、循环、分支语句等)内部的变量,它们只能在声明它们的代码块内使用。与成员变量不同的是,局部变量不属于对象,而是存储在栈中。

局部变量必须在使用之前进行初始化,否则编译器会报错。一般情况下,在代码块内部第一次赋值即可。

public void sayHello() {
    String name = "Tom"; //局部变量,必须初始化
    int age; //定义局部变量

    System.out.println("My name is " + name);

    if (someCondition) {
        age = 20; //给局部变量赋值
    } else {
        age = 30; //给局部变量赋值
    }

    System.out.println("I'm " + age + " years old.");
}

成员变量与局部变量的区别

成员变量和局部变量都是用于存储数据的变量,但它们有一些关键的区别

  1. 作用域:成员变量属于类,因此它们的作用域是整个类。而局部变量只存在于方法循环代码块中,并且只能在其声明的范围内访问。

  2. 生命周期:成员变量的生命周期与对象的生命周期相同。也就是说,只要对象存在,成员变量就一直存在。而局部变量只在其声明的代码块内存在,在该代码块执行完毕后就会消失。

  3. 可见性:成员变量可以有不同的可见性修饰符(public、protected、private等),这些修饰符控制着成员变量对其他类和对象的可见性。而局部变量只能在其所在的代码块内部访问。

  4. 默认值:当声明成员变量时,如果没有显式地对其进行初始化,则会赋予默认值(例如,整数类型的成员变量默认值为0)。而声明局部变量时,必须显式地进行初始化,否则编译器会报错。

  5. 存储位置:成员变量存储在堆内存中,而局部变量存储在栈内存中。

方法

方法(Method)是一种执行特定任务的代码块。它们是定义在类中的函数,可以被其他部分调用。Java中的方法包括两个主要组件:方法头方法体。方法头指定了方法的名称、参数和返回值类型。方法体是一个代码块,包含了要执行的具体操作。

方法的作用

方法在Java中具有以下主要作用:

  1. 提高代码的可读性和复用性
    方法可以将代码划分为更小、更具可读性的模块。这不仅使代码易于阅读和理解,也使代码易于维护和修改。此外,方法还可以被多次调用以完成相同或类似的任务,提高了代码的复用性。

  2. 封装和隐藏实现细节
    方法可以将代码逻辑封装在一起,隐藏实现细节。这样,其他部分只需要知道如何调用该方法,而不需要关心方法内部的实现细节。

  3. 实现程序的模块化设计
    Java中的方法可以根据功能进行划分,实现程序的模块化设计。每个方法可以专注于实现某个具体的功能,使整个程序结构清晰明了。

  4. 支持多态性
    Java中的方法支持多态性,即相同的方法名可以被不同的类实现,并且能够根据运行时对象的类型自动选择正确的方法。这种特性是面向对象编程的重要特点之一。

方法的声明

Java中的方法声明主要包括以下部分:

  1. 访问修饰符
    访问修饰符用于控制方法的可见性,包括public、private、protected和默认(不写任何访问修饰符)四种。

  2. 返回值类型
    返回值类型指定了方法返回的数据类型。如果方法不返回任何值,则返回类型为void。

  3. 方法名
    方法名是方法的标识符,用于在程序中调用该方法。

  4. 参数列表
    参数列表指定了方法接受的参数类型和参数名称。如果方法不需要任何参数,则参数列表为空。

  5. 方法体
    方法体是一段由花括号包裹的代码块,包含了要执行的具体操作。

Student类

package atuigu03.field_method;

public class Student {
    // 定义学生类,包含姓名、年龄和成绩三个属性
    private String name;
    private int age;
    private double score;

    // 构造方法,初始化学生对象
    public Student(String name, int age, double score) {
        this.name = name;
        this.age = age;
        this.score = score;
    }

    // 获取学生姓名
    public String getName() {
        return name;
    }

    // 设置学生姓名
    public void setName(String name) {
        this.name = name;
    }

    // 获取学生年龄
    public int getAge() {
        return age;
    }

    // 设置学生年龄
    public void setAge(int age) {
        this.age = age;
    }

    // 获取学生成绩
    public double getScore() {
        return score;
    }

    // 设置学生成绩
    public void setScore(double score) {
        this.score = score;
    }

    // 打印学生信息
    public void printInfo() {
        System.out.println("Name: " + name);
        System.out.println("Age: " + age);
        System.out.println("Score: " + score);
    }

    public void specialty(String name, String time, String Specialty) {
        System.out.println("姓名:" + name);
        System.out.println("练习时长:" + time);
        System.out.println("特长:" + Specialty);

    }
}

调用

package atuigu03.field_method;

public class StudentTest {
    public static void main(String[] args) {
        // 创建学生对象并初始化
        Student s1 = new Student("蔡徐坤", 30, 99.0);

        // 调用对象的方法
        System.out.println("set前:");
        s1.printInfo();

        s1.setScore(66.0);
        s1.setAge(35);

        System.out.println("set后:");
        s1.printInfo();

        s1.specialty("蔡徐坤", "2.5年", "唱跳rap篮球");
    }
}

面向对象【成员变量与局部变量、方法声明与作用】文章来源地址https://www.toymoban.com/news/detail-499529.html

到了这里,关于面向对象【成员变量与局部变量、方法声明与作用】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python-面向对象:面向对象、成员方法 、类和对象、构造方法、魔术方法、封装、继承、类型注解、多态(抽象类(接口))

    当前版本号[20230806]。 版本 修改说明 20230806 初版 生活中数据的组织 学校开学,要求学生填写自己的基础信息,一人发一张白纸,让学生自己填, 易出现内容混乱 但当改为登记表,打印出来让学生自行填写, 就会整洁明了 程序中数据的组织 在程序中简单使用变量来记录学

    2024年02月14日
    浏览(52)
  • Java成员变量(全局变量)和局部变量

    在Java中变量类型有 成员变量 、 局部变量 和 静态变量(类变量、static变量) ,本篇文章主要介绍成员变量(全局变量)和局部变量的区别。 根据变量的作用范围,将程序中的变量分为成员变量(全局变量)和局部变量。 一、成员变量(全局变量) 成员变量(全局变量):

    2024年02月04日
    浏览(42)
  • Golang 局部变量、全局变量 声明

    四种声明方式 + 多变量声明: 全局变量的声明和局部变量的声明方式一、二、三 相同; 但是不能使用局部变量声明方式四 (:=) 来声明全局变量。

    2024年02月13日
    浏览(37)
  • Java 成员变量与局部变量有什么区别?

    节选自JavaGuide(Github 标星 134k star!「Java学习 + 面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识) 语法形式 :从语法形式上看,成员变量是属于类的,而局部变量是在代码块或方法中定义的变量或是方法的参数;成员变量可以被 public , private , static 等修饰符所修

    2024年02月05日
    浏览(50)
  • java中this的内存原理以及成员变量和局部变量

    区分局部变量和成员变量 eg: 代表所在方法调用者的地址值 代表所在方法调用者的地址值: 此时main方法里面的调用者是s,s记录的地址值是001;this的本质是方法调用者的地址值,所以this指向的地址值是001。 this的内存原理: 解析: 等号的右边name出发了就近原则,表示setN

    2024年02月04日
    浏览(47)
  • 带你深入理解 Java成员变量,局部变量和静态变量的创建和回收时机

    Java中的成员变量、局部变量和静态变量具有不同的创建和回收时机。下面我将详细介绍它们的特点和生命周期。 成员变量(实例变量): 成员变量是定义在类中的变量,每个类的实例都会拥有自己的成员变量。它们的生命周期与对象的创建和销毁相对应。 创建时机:成员变

    2024年02月07日
    浏览(40)
  • 【C语言趣味教程】(6) 作用域:局部变量 | 全局变量 | 局部变量优先原则 | 利用大括号限制作用域 | 变量的生命周期

        🔗 【C语言趣味教程】专栏介绍👈 猛戳了解!!! 0x00 引入:什么是作用域? 变量和常量在程序中都是有作用范围的,这个范围我们称之为变量的  作用域 (scope) 。 作用域也称为 \\\"定义域\\\",是程序中 定义的变量所存在的区域,出了该区域变量就不能被访问。 变量的作

    2024年02月14日
    浏览(52)
  • 【C语言趣味教学】(6) 作用域:局部变量 | 全局变量 | 局部变量优先原则 | 利用大括号限制作用域 | 变量的生命周期

        🔗 【C语言趣味教程】专栏介绍👈 猛戳了解!!! 0x00 引入:什么是作用域? 变量和常量在程序中都是有作用范围的,这个范围我们称之为变量的  作用域 (scope) 。 作用域也称为 \\\"定义域\\\",是程序中 定义的变量所存在的区域,出了该区域变量就不能被访问。 变量的作

    2024年02月14日
    浏览(33)
  • 17. C++ static、const 和 static const 类型成员变量声明以及初始化

    1. C++ static、const 和 static const 类型成员变量声明以及初始化 const 定义的常量在超出其作用域之后其空间会被释放; static 定义的静态常量在函数执行后不会释放其存储空间; 1.2 static static 表示的是静态的 类的静态成员函数、静态成员变量是和类相关的,而不是和类的具体对

    2024年01月18日
    浏览(59)
  • C++:常成员变量、常成员函数、常对象

    常成员变量: 1.用const修饰,可位于类型前后,若是成员变量类型为指针则只可位于类型后。 即:int  *const  p; 2.只能通过构造函数的初始化表对常成员变量进行初始化。 3.常成员所在类中的所有构造函数都必须对常成员变量初始化(通过初始化表)。 4.常成员变量可以被访

    2024年02月11日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包