-
2020-05-24 19:41:56
成员变量与局部变量
1.相同点:
1.1 定义变量的格式:数据类型 变量名 = 变量值 1.2 先声明,后使用 1.3 变量都其对应的作用域
2.不同点:
2.1 在类中声明的位置的不同 成员变量:直接定义在类的一对{}内 局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量 2.2 关于权限修饰符的不同 成员变量:可以在声明成员变量时,指明其权限,使用权限修饰符。 常用的权限修饰符:private、public、缺省、protected 局部变量:不可以使用权限修饰符。 2.3 默认初始化值的情况: 成员变量:类的属性,根据其类型,都默认初始化值。 整型(byte、short、int、long:0) 浮点型(float、double:0.0) 字符型(char:0 (或'\u0000')) 布尔型(boolean:false) 引用数据类型(类、数组、接口:null) 局部变量:没有默认初始化值。 意味着,在调用局部变量之前,一定要显式赋值。 特别地:形参在调用时,赋值即可。 2.4 在内存中加载的位置: 成员变量:加载到堆空间中 (非static) 局部变量:加载到栈空间
更多相关内容 -
Java 当类的属性与形参的名字相同时
2015-01-13 20:56:33当类的属性和类方法的形参名字相同时,类方法里面的变量是指向类属性还是类方法的形参呢? 这是我刚刚偶尔发现的问题,特地研究了一下。 例如,我现在写一个Test类:(注意:这里没有用this.count,因为this.count...当类的属性和类方法的形参名字相同时,类方法里面的变量是指向类属性还是类方法的形参呢?
这是我刚刚偶尔发现的问题,特地研究了一下。
例如,我现在写一个Test类:(注意:这里没有用this.count,因为this.count是肯定指向类属性的。)
<span style="font-size:18px;">public class Test { public static void main(String[] args) { SecondClass secondClass=new Test.SecondClass(100); System.out.println(secondClass.count); System.out.println(secondClass.second); } static class SecondClass{ int count=1; int second=0; public SecondClass(int count) { count=count; //左部count是哪个?右部count又是哪个? second=count; //调用的是哪个count? } } }</span>
当形参编程mCount的时候呢?
static class SecondClass{ int count=1; int second=0; public SecondClass(int mCount) { count=count; second=count; } }
第一段代码的运行结果是:
count=1
second=100得到的结果是,类属性count并没有被类方法调用,而second=count;语句调用的是形参。
第二段代码的运行结果是:
count=1
second=1得到的结果说明,在没有类属性跟类方法的形参重名的情况下,调用的才是类属性。
所以,在重名情况下,类方法的形参优先级比类属性更高!这就告诫我们,当调用类属性的时候,尽量使用this.变量!这样才不易造成混乱…保持良好的变成习惯,嗯!
-
类中属性(局部变量)和成员变量的相同点和不同点
2021-04-23 23:41:42**1.1定义变量的格式:**数据类型 变量名=变量值 1.2先声明后使用 1.3变量都有其对应的作用域 2.不同点: 2.1在类中声明的位置不同 属性:直接定义在类中的一对{}内。 举例: class User{ //属性(或成员变量) String...1.相同点:
**1.1定义变量的格式:**数据类型 变量名=变量值
1.2先声明后使用
1.3变量都有其对应的作用域2.不同点:
2.1在类中声明的位置不同
属性:直接定义在类中的一对{}内。
举例:class User{ //属性(或成员变量) String name; int age; boolean isMale; }
**局部变量:**声明在方法、方法形参、代码块内、构造器形参、构造器内部的变量。
class User{ public void talk(String language){//language:形参,也是局部变量 System.out.println("我们使用"+language+"进行交流"); } public void eat(){ String food="烙饼";//局部变量 System.out.println("北方人喜欢吃"+food); } }
2.2关于权限修饰符的不同:
**属性:**可以在声明属性时,指定其权限,使用权限修饰符
常用的权限修饰符:private、public、缺省、protected
局部变量不可以使用修饰符2.3默认初始化的问题:
**属性:**类的属性,根据其类型,都有默认初始化值
整型(byte,short,int,long):0
浮点型(float,double):0.0
字符型(char):0(或’u0000’)
布尔型(boolean):false
引用类型(类、数组、接口):null
**局部变量:**没有默认初始化值。意味着,我们在调用局部变量之前,一定要显式赋值。特别地,形参在调用时,我们赋值即可。2.4在内存中加载的位置:
**属性:**加载在堆空间中。(非static)
**局部变量:**加载在栈空间中。 -
如何访问类的成员变量和方法
2021-03-06 03:40:52在Java应用程序中,经常需要访问类的成员变量和方法,以实现程序的功能,请问应该如何访问类的成员变量和方法?在Java中通过类的实例(即对象)点(.)运算符来访问类的成员变量和方法,今天百分网小编为大家整理的如何...在Java应用程序中,经常需要访问类的成员变量和方法,以实现程序的功能,请问应该如何访问类的成员变量和方法?在Java中通过类的实例(即对象)点(.)运算符来访问类的成员变量和方法,今天百分网小编为大家整理的如何访问类的成员变量和方法,仅供学习参考,欢迎大家阅读浏览!
在Java中通过类的实例(即对象)点(.)运算符来访问类的成员变量和方法。语法格式如下:
对象名.成员变量;
对象名.方法(实参列表);
说明:在使用对象访问类的方法时,如果类的方法有形参,必须为方法传递与参数类型相同的实参值,比如方法的形参是String类型,参传递的实参值必须是一个具体的字符串值,如"OK"或者代表字符串值的常量或变量。
例如有下面这样一个类:
01 public class Test {
02 private int num; // 成员变量
03 public void setNum(int val) { // 成员方法
04 num = val; // 为成员变量赋值
05 }
06 public int getNum() { // 成员方法
07 return num; // 返回成员变量的值
08 }
09 public void printStr() { // 成员方法
10 String str = "Hello"; // 定义局部变量str
11 System.out.println(str); // 输出变量str的值
12 }
13 }
有了类就可以通过类的实例来访问Test类的成员变量和方法了,如果将下面的代码放到Test类的主方法中,用户再添加两个条输出变量a和b的语句,运行程序就可以在控制台输出信息了。
例如:
1 Test test=new Test(); // 创建Test类的对象test
2 test.setNum(20); // 通过对象test访问类的setNum()方法,为成员变量num赋值
3 int a=test.getNum(); // 通过对象test访问类的getNum()方法,获得成员变量num的值
4 int b=test.num; // 通过对象test访问类的成员变量num,获得成员变量num的值
说明:由于没有为类Test定义构造方法,所以上面代码使用Test类的默认没有任何形参的构造方法创建了Test类的对象test,然后通过test.setNum(20)访问类的方法setNum(),并为该方法传递实参值20,这样成员变量num就被赋值为20了,然后通过test.getNum()访问类的getNum()方法,获得成员变量num的值20并赋值给变量a,最后一行代码通过test.num直接访问类的成员变量num,并赋值给变量b,因此变量b的值也是20。
类是一个抽象的概念,在实际编程过程中会用到很多类,一定要认真思考每个类应该包含的成员和方法,以及怎样完成每个方法所要实现的功能。
-
Java:全局变量(成员变量)与局部变量
2021-02-12 09:09:32变量按作用范围划分分为全局变量(成员变量)和局部变量成员变量按调用方式划分分为实例属性与类属性(有关实例属性与类属性的介绍见另一博文https://blog.csdn.net/DragonGirI/article/details/81948332)局部变量按... -
Java基础:this关键字可在方法参数和成员变量同名时进行区分
2020-06-12 17:34:11this的用途之一:在方法参数和成员变量同名时用this进行区分,表示想用类的成员变量,而非方法参数。 创建一个打电话的类: public class Callone { String name; // name是我的名字,who是对方名字 public void ... -
java变量名命名规则
2021-12-20 11:00:19文中将会涉及到日常工作中常见的命名示例,如包命名,类命名,接口命名,方法命名,变量命名,常类命名,抽象类命名,异常类命名以及扩展类命名等。我将按照项目工程目录结构,从包,类(接口,抽象类,异常类),方法... -
成员变量与局部变量相同点与不同点(易错)
2021-03-22 11:09:09成员变量与局部变量相同点与不同点(易错) package com.happy.bean; /* * 成员变量与局部变量的相同点与不同点、 * * (1)相同点 * ①定义变量的格式:数据类型 变量名 = 变量值 * ②先声明,后使用 * ③变量都... -
四、Java 类和对象以及变量
2022-03-16 11:19:06四、Java 类和对象以及变量 Java 是面向对象的编程语言,类是面向对象的重要内容,可以把类当成一种自定义类型,可以使用类来定义变量,这种类型的变量统称为引用变量,也就是说所有类都是引用类型。 4.1定义类 ... -
java变量重名问题
2020-11-29 13:48:54方法中的局部变量也不能和形参同名 同一个方法的不同代码块可以重名 public static void methd(int b) { //同一个方法的不同代码块变量可以重名 for (int i = 0; i < 10; i++) { int a; } for (int i = ... -
Java类及类的成员、方法
2022-02-24 08:50:271.0、类和对象 类:是对一类事务的描述...属性:对应类中的成员变量 方法:对应类中的成员方法 1.2、构造器 * this 的具体说明在笔记的最后一章《关键字的使用》当中查看 1.3、类的成员构成(代码附件 -
类中属性和成员变量相同点和不同点
2021-04-26 21:23:01属性(成员变量):直接定义在类的一对{}内 局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量 2.2关于权限修饰符的不同 属性:可以在声明属性时,指明其权限,使用权限修饰符。 常用的... -
Java面向对象、局部变量、成员变量以及this的理解?(六)
2022-03-10 19:59:13什么是面向对象? 一切客观存在的事务都为对象。...类和对象的关系:一个类可以创建多个对象(实例)。 类是对象的模板 。 对象是类的实例 。 类的组成部分: class 类名{ //手机(类名=Phone) // 1. 属性:描 -
JAVA类及类的成员
2021-07-18 18:47:341.属性 2.方法 3.构造器 4.代码块 5.内部类 -
java方法 成员变量 局部变量概述
2017-12-23 20:37:58一旦将一个方法定义在某个类的类体内,如果这个方法使用了static修饰,则这个方法属于这个类,否则这个方法属于这个类的实例。 1.2 方法的语法格式 在Java中,声明一个方法的具体语法格式如下: -
java中的成员变量和局部变量
2018-03-22 16:25:37在java语言中,根据定义变量的位置不同,而可以将其分为成员变量和局部变量两大类(具体分类参照图一.变量分类详图),下面将为大家详细介绍一下两种变量的运行机制的差异。图一.变量分类详图一、概念成员变量:指的... -
Java类成员之方法
2021-03-06 01:02:28方法含义:1. 方法是类或对象行为特征的抽象,用来完成某个功能操作。...方法的声明格式:修饰符 返回值类型 方法名(参数类型 形参) {方法体程序代码return 返回值;}1.修饰符:public,defunct,private, protected... -
Java成员方法:Java成员方法的声明和调用、形参和实参及局部变量
2019-07-06 20:38:22声明成员方法可以定义类的行为,行为表示一个对象能够做的事情或者能够从一个对象取得的信息。类的各种功能操作都是用方法来实现的,属性只不过提供了相应的数据。一个完整的方法通常包括方法名称、方法主体、方法... -
JAVA基础系列 - 第7篇: 类和对象
2021-04-23 22:35:33getter和setter方法的命名规范: getter方法用于获取成员变量的值,所以方法有返回值,方法名为:get+成员变量名首字母大写。 String getName() int getAge() setter方法用于设置成员变量的值,所以方法有参数,... -
Java 面向对象1 类 对象 方法 变量 封装
2021-03-13 13:45:01类和对象定义类面向对象的程序设计过程中有两个重要概念:类(class)和对象(object,也被称为实例,...零个到多个成员变量...零个到多个方法...}修饰符可以是public、final、abstract或者完全忽略。如果从程序的可... -
javaSE学习笔记(五):类与对象(2)——成员变量和成员方法
2021-03-06 00:55:16类变量和成员变量的作用域都与这个类的生存范围相同;类变量的生命周期是从该类的准备阶段起开始存在,直到系统销毁这个类;实例变量的生命周期是从该类的实例被创建起开始存在的,直到系统完全销毁这个实例;在java... -
JAVA 面向对象 成员变量和局部变量
2016-07-20 18:08:42在 Java语言中, 根据定义变量位置的不同,可以将变量分成两大类:成员变量 局部变量 成员变量和局部变量的运行机制存在很大差异,下面我们看看差异在哪. 成员变量 成员变量指的是在类里定义的变量. 局部变量指的是... -
类与对象、成员变量、成员方法
2021-01-14 18:44:19类与对象、成员变量、成员方法 面向对象的基本特征:封装,继承,多态 类和对象 类:是一类具有相同特性的事物的抽象描述,是一组相关属性和行为的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征来... -
Java属性(成员变量)VS局部变量
2021-04-27 19:17:35属性(成员变量)VS局部变量 1.相同点: 1.1定义变量的格式:数据类型变量名=变量值1.2先声明,后使用 1.3变量都有其对应的作用域 2.不同点: 2.1在类中声明的位置的不同属性:直接定义在类的一对{得}内 局部变量:声明在... -
Java基础重温_07:类、对象、成员变量和局部变量、private关键字(私有封装get/set调用、反射调用)、this...
2020-03-21 14:31:37Java基础复习07 -
Java类和对象—变量的作用域+成员(局部变量)+成员方法
2020-06-04 17:46:54成员变量:类的方法可以直接使用该类定义成员变量。如果其他类的方法要访问它,收先要做的就是创建该类的独享,然后通过操作符“.”来引用。 局部变量:他的作用域仅仅在定义该变量的方法内,因此只有在这个方