第四章 变量和方法

文章目录

  • 第四章 变量和方法
  • 一、变量
    • 1.Java 变量类型
  • 二、方法
    • 1.什么是方法
    • 2.方法的优点
    • 3.方法的命名规则
    • 4.方法的定义
    • 5.方法调用
    • 6.方法的重载

一、变量

1.Java 变量类型

Java语言支持的变量类型有:

  • 类变量:独立于方法之外的变量,用 static 修饰
  • 实例变量:独立于方法之外的变量,不过没有 static 修饰
  • 局部变量:类的方法中的变量

类变量

  • 无论一个类创建了多少对象,类只有类变量的一份拷贝
  • 静态变量存储在静态存储区
  • 静态变量在类加载时被创建,在程序结束是被销毁
  • 与实例变量具有相似的可见性
  • 静态变量可以通过:ClassName.VariableName 的方式访问
  • 静态变量有默认值

实例变量

  • 一个类被实例化后,实例变量的值也会跟着确定
  • 实例变量在对象创建的时候创建,在对象被销毁时销毁
  • 实例变量有默认值

局部变量

  • 局部变量在方法或者语句块被执行的时候创建,当它们执行完后,局部变量就会被销毁
  • 局部变量不能用访问修饰符修饰
  • 局部变量只在声明它的方法或者语句块中可见
  • 局部变量没有默认值

二、方法

1.什么是方法

Java方法是语句的集合,它们在一起执行一个功能

  • 方法是解决一类问题的步骤的有序组合
  • 方法包含于类或对象中
  • 方法在程序中被创建,在其他地方被引用

2.方法的优点

  1. 使程序变得更简短而清晰
  2. 有利于程序维护
  3. 可以提高程序开发的效率
  4. 提高了代码的重用性

3.方法的命名规则

  • 方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符。例如:addPerson
  • 下划线可能出现在 JUnit 测试方法名称中用以分隔名称的逻辑组件。一个典型的模式是:test_,例如 testPop_emptyStack

4.方法的定义

一般情况下,定义一个方法包含以下语法:

修饰符 返回值类型 方法名(参数类型 参数名){...方法体...return 返回值;
}

方法包含一个方法头和一个方法体。下面是一个方法的所有部分:

  • 修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型
  • 返回值类型 :方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType 是关键字void
  • 方法名:是方法的实际名称。方法名和参数表共同构成方法签名
  • 参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数
  • 方法体:方法体包含具体的语句,定义该方法的功能

5.方法调用

Java 支持两种调用方法的方式,根据方法是否返回值来选择
当程序调用一个方法时,程序的控制权交给了被调用的方法。当被调用方法的返回语句执行或者到达方法体闭括号时候交还控制权给程序
当方法返回一个值的时候,方法调用通常被当做一个值。例如:

int larger = max(30, 40);

如果方法返回值是void,方法调用一定是一条语句。例如,方法println返回void。下面的调用是个语句:

System.out.println(“Hello World”);

6.方法的重载

上面使用的max方法仅仅适用于int型数据。但如果你想得到两个浮点类型数据的最大值呢?
解决方法是创建另一个有相同名字但参数不同的方法,如下面代码所示:

public static double max(double num1, double num2) {if (num1 > num2)return num1;elsereturn num2;
}

如果你调用max方法时传递的是int型参数,则 int型参数的max方法就会被调用
如果传递的是double型参数,则double类型的max方法体会被调用,这叫做方法重载
就是说一个类的两个方法拥有相同的名字,但是有不同的参数列表
Java编译器根据方法签名(方法名+参数列表)判断哪个方法应该被调用
方法重载可以让程序更清晰易读。执行密切相关任务的方法应该使用相同的名字
重载的方法必须拥有不同的参数列表。你不能仅仅依据修饰符或者返回类型的不同来重载方法

【JAVA SE】第四章 变量和方法相关推荐

  1. 用JAVA编写一个水果箱,Java SE 第四章类之间的关系--水果箱编程题

    问题:有一个水果箱(Box),箱子里装有水果(Fruit),每一种水果都有不同的重量和颜色,水果有:苹果.梨.桔子.每个苹果(Apple)都有不同的重量和颜色,每个桔子(Orange)都有不同的重量和 ...

  2. 尚学堂java实战第四章课后习题

    尚学堂java实战第四章课后习题 文章中的题目答案仅供参考 选择题答案: 1.B 解析:一个java类必然存在构造器,即使没有定义构造器,也会存在一个默认的无参构造器. 2.D 3.AC 解析: A( ...

  3. 疯狂java讲义第四章习题答案

    1.使用循环输出九九乘法表. 疯狂java讲义第四章课后习题第1题答案 2.根据给定的层数,使用循环输出等腰三角形. 疯狂java讲义第四章课后习题第2题答案 3.给定半径输出圆形. 需要注意的是,计 ...

  4. Java SE第8章 Java集合

    Java SE第8章 Java集合 1. 集合的概念和作用 2. 使用Lambad表达式遍历集合 3.Collection集合的常规用法 4. 使用Predicate操作集合 5.使用Iterator ...

  5. Java私塾跟我学系列——JAVA篇 第四章Java类和对象

    教学目标: i面向对象基础 i掌握对象的三大特性 i掌握Java类的构建 i掌握如何使用Java类 i理解引用类型 i理解按值传递和按引用传递 i深入理解变量 i掌握包装类 i理解类型转换 i理解Ja ...

  6. 2020.11.4 《JavaScript高级教程》 第四章 变量、作用域和内存问题 第五章 引用类型(对象 数组 date function)

    第四章 变量,作用域和内存问题 基本类型和引用类型的区别 1.基本类型不能直接添加属性 引用类型可以直接添加属性: var person = new object();person.name = &q ...

  7. JavaScript高级程序设计 第四章---变量 作用域 内存

    第四章-变量 作用域 内存 关键字:变量 作用域 内存 本章内容 通过变量使用原始值与引用值 理解执行上下文 理解垃圾回收 4.1 原始值与引用值 ECMAScript 变量可以包含两种不同类型的数据 ...

  8. Java中类、常量、变量、方法名等命名规则

    Java中类.常量.变量.方法名等命名规则 命名规则: 命名由字母.数字.下划线.美元符号($)构成. 命名不可以数字作为开头. 长度无限制,但不可存在空格. 大小写所表述内容含义不同. 命名不可与J ...

  9. 【JAVA SE】第一章 Java语言概述、环境变量和HelloWorld

    第一章 Java语言概述.环境变量和HelloWorld 文章目录 第一章 Java语言概述.环境变量和HelloWorld 一.Java语言概述 1.Java简介 2.Java发展历史 3.Java ...

最新文章

  1. android studio网上订餐软件_直播软件OBS的使用
  2. 在IIS7里配置 ISAPI,运行dll程序,总提示下载dll
  3. Win7 怎么取消禁(被)ping
  4. 全国计算机等级考试 备考,全国计算机等级考试经验:如何调整备考心态
  5. .NET Core开发实战(第9课:命令行配置提供程序)--学习笔记
  6. Insertion Sort——打表找规律
  7. python调用gpu进行运算_tensorflow指定CPU与GPU运算的方法实现
  8. Kubernetes 部署 Traefik Ingress 控制器 (1.7.12)
  9. ipq_read(3)
  10. python 包之 Pygame 游戏开发教程
  11. 【设计模式】职责链模式,MySQL+Tomcat+JVM,看完还怕面试官
  12. 来了,来了,他来了,使用Github制作自己的在线简历(网页和PDF版)你都值得拥有
  13. 视频特征提取常用范式总结
  14. centos 7 安装时忘记打开网络导致开机网络无法自启动解决办法
  15. 斯坦福21秋季:实用机器学习-李沐课程笔记
  16. 批量复制到花瓣网上图片素材的原图
  17. 语义分割yolov5 v4.0 baseline快速复现 快速跑通 图像分割 图像分类 重新训练,训练结果,测试结果,实验图片-20210227
  18. css调颜色,CSS3 简单的调色板
  19. 计算机毕业设计Java夕阳红养老院系统(源码+系统+mysql数据库+Lw文档)
  20. Python %取模小故事

热门文章

  1. ios mysql注册登录界面_iOS+PHP实现登录功能
  2. 2020年中职学计算机有前途吗,2020年南昌中专计算机专业都学什么
  3. 在html页面中使用模板继承,HTML静态模板的继承
  4. linux io测试陈旭,130242014076+陈旭+第2次实验(示例代码)
  5. leetcode46.全排列
  6. VB6 如何连接MYSQL数据库
  7. Struts2实现简单的在线人数统计
  8. scala基础之函数和闭包
  9. (72)信号发生器DDS方波设计 (二)(第15天)
  10. (07)System Verilog 数组常用操作