作用域

在java编程中,主要的变量就是属性(成员变量)和局部变量。

  • 全局变量:也就是属性,作用域为整个类体。可以不赋值直接使用,因为有默认值。

  • 局部变量:一般指的是在成员方法中定义的变量(除了属性之外的其他变量,作用域为定义它的代码块中)。局部变量必须赋值后使用,因为没有默认值。


注意事项和使用细节
  1. 属性和局部变量可以重名,访问时遵循就近原则

  2. 在同一个作用域中,必须在同一个成员方法中,两个局部变量不能重名

  3. 属性生命周期较长,伴随着对象的创建而创建,伴随着对象的销毁而销毁。

    局部变量生命周期较短,伴随着它的代码块执行而创建,伴随着代码块的结束而销毁,即在一次方法调用过程中。

class Person{String words = "I don't like Cola.";public void say(){String words = "I like Cola.";System.out.println(words); //I like Cola.}
}
  1. 作用域范围不同

    全局变量/属性:可以被本类使用,或其他类调用

    局部变量:只能在本类中的对应方法中使用

  2. 修饰符不同

    全局变量/属性:可以加修饰符

    局部变量:不可以加修饰符

class Person{int age = 5;
}
class Dog{public void test(Person p){System.out.println(p.age);//5}
}

JAVA基础-U7 面向对象编程(基础部分)-作用域相关推荐

  1. JAVA基础-U7 面向对象编程(基础部分)-构造器

    构造方法/构造器 基本语法 构造方法又叫构造器(constructor),是类的一种特殊方法,它的主要作用是对新对象的初始化 [修饰符] 方法(形参列表){方法体; } 构造器的修饰符可以默认,也可以 ...

  2. JAVA基础-U7 面向对象编程(基础部分)-可变参数

    可变参数 基本概念 java允许将同一个类中多个同名同功能但参数个数不同的方法,封装成一个方法 本质上是将其当成数组对待 基本语法 访问修饰符 返回类型 方法名(数据类型... 形参名){} 快速入门 ...

  3. JAVA基础-U7 面向对象编程(基础部分)-成员方法

    成员方法 快速入门 添加speak成员方法,输出"我是一个好人" 添加cal01成员方法,可以计算从1+-+1000的结果 添加cal02成员方法,该方法可以接受一个数n,计算从1 ...

  4. JAVA基础-U7 面向对象编程(基础部分)-类与对象

    类与对象(OOP) 快速入门 类是抽象的,概念的,代表一类事物.即它是数据类型 对象是具体的,实际的,代表一个具体事物.即它是实例 类是对象的模版,对象是类的一个个体,对应一个实例 养猫问题: 张老太 ...

  5. JAVA基础-U7 面向对象编程(基础部分)-方法重载

    方法重载(Overload) 基本介绍 java中允许同一个类中,多个同名方法的存在,但要求形参列表不一致 eg. System.out.println(); //out是PrintStream类型 ...

  6. JAVA基础-U7 面向对象编程(基础部分)-递归

    方法递归调用 递归能解决什么问题 各种数学问题:8皇后问题.汉诺塔.阶乘问题.迷宫问题,球和篮子的问题- 各种算法问题:快排.归并排序.二分查找.分治算法- 用栈解决的问题(递归代码比较简洁) 递归调 ...

  7. [Java入门笔记] 面向对象编程基础(二):方法详解

    2019独角兽企业重金招聘Python工程师标准>>> 什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能 ...

  8. Java基础-初识面向对象编程(Object-Oriented-Programming)

    Java基础-初识面向对象编程(Object-Oriented-Programming) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Java是一门面向对象的程序设计语言.那么什 ...

  9. Java面向对象编程(基础部分)

    面向对象编程(基础部分) 类与对象 01: public class ObjectWorkDemo {public static void main(String[] args){Cat cat1 = ...

最新文章

  1. HubbleDotNet 简介 (转)
  2. 负样本修正:CVR预估时间延迟问题
  3. TestNG 入门教程
  4. 树的先序遍历的栈实现
  5. tmux 上滚_实践中的tmux:回滚缓冲区
  6. 使用promise封装ajax请求
  7. account.php,account.php
  8. 博文视点卓越书单丨Python技术成长加油站
  9. java文件ftp下载,java ftp下载文件夹内所有文件,java 下载ftp文件夹下所有文件
  10. 用python定时自动发微博_用python自动发微博
  11. 基于Java SSM springboot健身管理系统设计和实现
  12. 修炼内功的融云,以通讯中台赋能企业数字化升级
  13. Gradient descent拙见
  14. 【创业邦·年度创业人物】刘强东:十年战争与千亿美金帝国梦
  15. EMQ 边缘消息服务器管理套件 EMQ X Storm 发
  16. Android 自定义 View 三步骤
  17. 区块链入门系列之共识算法
  18. python识别图片上的文字_怎么用python识别图片中的文字-百度经验
  19. (转载)分享 别人的 职业故事
  20. Python中字典列表的使用:实现名片信息管理系统

热门文章

  1. 织梦如何正确的书写网站底部版权
  2. 大学考试分数越高学分越多吗_千万别到了大四才知道,绩点和学分的用处,那可就真的为时已晚!...
  3. vue中input标签的使用
  4. 精准大数据获客如何做到APP直抓 精准截流 提高客户质量
  5. HihoCoder 1527 题解
  6. 《Google软件测试之道》有感
  7. 数据结构-PHP 并查集(Union Find)
  8. 淘宝足迹推荐位是什么
  9. perror()函数的使用
  10. DBGrid和DBGridEH