成员变量 和 局部变量的异同

一、面向对象思想的体现一 : 类和对象的构建
1.创建类 也就是创建类的成员 属性(成员变量) 和 方法(成员方法或成员函数)
2.创建类的对象 (类的实例化 )(这个类的对象通常放在一个有main方法的测试类中 比如 Person p = new Person() 和Scanner 类似)
3.通过:“对象.属性”或者 “对象.方法”调用相关的功能
注:特殊的可以直接调用类 如 Math.sqrt() / Math.random()
二、如果创建了一个类的多个对象,那么多个对象之间是彼此独立的。即为每个对象,都拥有一套自己的属性,当通过其中一个对象修改其属性值时,不会影响到其他对象相同属性的值
三、对象的内存解析

成员变量(属性) VS 局部变量 异同
1 相同点 (1)声明的格式是相同的 : 数据类型 变量名 = 初始化值
(2)先声明,后使用
(3)变量都有作用域
2 不同点 (1)类中声明的位置不同 : 成员变量:在类中的一对大{}之内直接声明的变量
局部变量:方法内声明的 ,方法的形参位置声明的,构造器内声明的 ,代码块内声明的都是局部变量
(2)成员变量可以在数据类型前声明权限修饰符 而局部变量不可以声明权限修饰符
补充 : 权限修饰符 : public private protected 缺省(也就是不写没有声明)
(3)成员变量 声明时有默认初始化值也就是说在定义成员变量时可以不显示的赋值 如 int num; int age;默认num =0
局部变量 声明时没有初始化变量 必须显示赋值
补充 :局部变量特例: 方法中的形参,此局部变量在方法内调用前不需要赋值,它的赋值是在方法调用是进行的
(4) 二者在内存中存放的位置是不同的 成员变量存放在堆内存中 , 局部变量存放在栈内存中

// 方法的声明格式 权限修饰符 返回值类型 方法名(形参名){
方法体
}
具体说明 1.权限修饰符 可以理解为所被修饰的结构能被调用的范围大小 权限修饰符有: public protected private 缺省 目前大家用到的都可以是 public
2 关于返回值类型 : 1没有返回值 void (在void 中也可以用 return,表示跳出 )
2.有返回值:具体的返回值类型 返回具体满足相应类型的变量或常量 (一定要有return)
举例: 1 public void eat(String food){} ------> 无返回值
2 public void show (){} ------------>无返回值
3 public int returnAge (){} ------------>有返回值
3 方法名属于标识符 ,命名时要满足标识符命名规则和规范 见名之意
4 形参列表 可以省声明0个 1个 或者多个如果声明多个 用“,”隔开
5 方法体 我们调用方法时 要执行的逻辑 方法的功能主要体现在方法体上

1方法中调用当前类的属性或方法 (如果A中调用A方法 :递归方法)
2 在方法体中可以使用关键字 return return后面不能紧跟执行语句了 和break类似
3 在方法内,不能再定义 方法 (但是可以调用方法)

在同一包下 不同java文件下的 方法可以相互调用

注意的是 public static void main (String[] args){
method(); //这是错误的 虽然说方法中可以调用方法,但前提是方法中没有 static 关键字
}

时间: 2024-10-27 05:17:25

成员变量 和 局部变量的异同的相关文章

成员变量和局部变量

成员变量和局部变量 1.变量声明的位置决定变量作用域 2.变量作用域确定可在程序中按变量名访问该变量的区域 3.成员变量:定义在类中的变量(类或其他类中可以调用) 4.局部变量:定义在方法中的变量(方法) 5.区别:a.作用域不同 局部变量的作用域仅限于定义它的方法 成员变量的作用域在整个类内部都是可见的 b.初始值不同 Java会给成员变量一个初始值 Java不会给局部变量赋予初始值 6.在同个方法中,不允许有同名局部变量 ,在不同方法中,可以有同名的局部变量, 在同个类中,成员变量和局部变量

成员变量与局部变量

  初始值 作用域 优先级 成员变量 java会给成员变量一个初始值 受访问控制修饰符影响作用域不同 成员变量与局部变量同名时,优先使用局部变量 局部变量 java不会给局部变量赋初始值 方法内,代码块作用域 初始值比较: 1 public class Var { 2 private static int var1;// 成员变量 3 4 public void method() { 5 int var2;// 局部变量 6 System.out.println(var1);// 编译通过,成员

java 线程---成员变量与局部变量

关于成员变量与局部变量: 如果一个变量是成员变量,那么多个线程对同一个对象的成员变量进行操作时,他们对该成员变量是彼此影响的(也就是说一个线程对成员变量的改变会影响到另一个线程) . 如果一个变量是局部变量,那么每个线程都会有一个该局部变量的拷贝,一个线程对该局部变量的改变不会影响到其他的线程. 实例: Servlet容器为了响应多个用户同时访问一个Servlet的HTTP请求,通常会为每个请求分配一个工作线程,这些工作线程并发执行同一个Servlet(即Servlet是单实例的)的servic

Java基础——成员变量、局部变量和静态变量的区别

之前在刚开始学习Java的时候,就谈了谈Java基础中的变量,虽然知道这货以后会经常用到,但没想到了基本语法这里,竟然有冒出来了成员变量.局部变量和静态变量.变来变去太容易让人搞晕了,挑拣出来梳理一下喽! 要想区分这哥仨,首先,我们得知道它们分别是什么.先从成员变量下刀. 成员变量 我们来研究一个事物: 属性:外在特征:例如人的身高,体重 行为:能够做什么:例如人有说话,打球等行为. 而在Java语言中,最基本的单位是类,类就是用来体现事物的. 用类class来描述事物也是如此: 属性:对应类中

成员变量与局部变量区别

成员变量:作为类的成员而存在,直接存在于类中.所有类的成员变量可以通过this来引用. class A { int a;//成员变量 public static void main(String[] args) { this.a=3;} } 局部变量:作为方法或语句块的成员而存在,存在于方法的参数列表和方法定义中. public void change1(int i){ i = 1234; }  区别: 成员变量可以被 public,protect,private,static等修饰符修饰 局部

【java基础】成员变量和局部变量02

成员变量和局部变量(2) 成员变量的初始化和内存中的运行机制         当系统加载类或者创建类的实例的时候,系统会自动为成员变量分配内存空间,并自动指定初始值. package object; public class Person { //定义一个静态的变量 public static String city; //定义一个非静态的变量 public String name; public static void main(String[] args) { /*当person类加载的时候

[Java入门笔记] 面向对象编程基础(三):成员变量和局部变量

在类中,变量根据定义的位置不同,可以分为成员变量和局部变量. 成员变量是在类体内,方法之外定义的变量,局部变量是在方法中定义的参数. 成员变量 成员变量分为类属性和实例属性,定义时没有static修饰的称为实例属性,有static修饰的称为类属性,类属性和实例属性的区别就是类属性是属于类的,它并不属于哪一个对象,它从这个类的准备阶段就一直存在,一直到这个类完全销毁.实例属性属于对象,只有某个对象被创建时,它才被创建,对象被回收,从属于该对象的实例属性也就被销毁了. 类属性的定义语法: [修饰符]

成员变量和局部变量 成员变量和局部变量

1.变量声明的位置决定变量作用域 2.变量作用域确定可在程序中按变量名访问该变量的区域 3.成员变量:定义在类中的变量(类或其他类中可以调用) 4.局部变量:定义在方法中的变量(方法) 5.区别:a.作用域不同 局部变量的作用域仅限于定义它的方法 成员变量的作用域在整个类内部都是可见的 b.初始值不同 Java会给成员变量一个初始值 Java不会给局部变量赋予初始值 6.在同个方法中,不允许有同名局部变量 ,在不同方法中,可以有同名的局部变量, 在同个类中,成员变量和局部变量同名时,局部变量具有

数组 面向对象 成员变量和局部变量额区别

一.数组 1.数组中常见的错误: 1.NullPointerExcepation : 空指针异常 原因:引用的类型变量没有指向任何的对象,在这种情况下还访问了它的属性和方法. 一个对象如果使用完了不会立马释放,只是将这个对象变为一个垃圾对象,由垃圾回收机制自己来释放.,我们没办法操作它释放. 2.ArrayIndexOutOfBoundsExcepation :数组下表越界. 二.面向对象 1.java也属于面向对象编程 : 2.面向对象的三大特征 : 封装,继承,多态.类,对象. 3.对象 :