类体中的变量分为两部分。变量定义部分定义的变量为类的成员变量,在方法体中定义的变量和方法中涉及的变量称为局部变量。

成员变量和局部变量的区别:

(1)、成员变量在整个类中都有效,局部变量只在定义它的方法中有效

(2)、成员变量分为实例成员变量(简称实例变量)和类变量(简称静态变量),如果在成员变量类型前加static,这个变量就称为类变量。

(3)、如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏 ,也就是说,这个成员变量在这个方法中暂时失效。

例:

public class Benson{

  int x=100,y;

  void f(){

    int x=10;

    y=x;  //这里的y得到的值是10,而不是100

  }

}

注意:如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏,这是如果想在该方法内使用成员变量,必须使用this关键字。

例:

public class Employee{

  int sideA,sideB,sideC;

  void setSide(int sideA,int sideB,int sideC){

    this.sideA=sideA; this.sideB=sideB;this.sideC=sideC;

  }

}

方法声明包括方法名、返回类型和外部参数。其中参数的类型可以是简单数据类型,也可以是复合数据类型(又称引用数据类型)。

对于简单数据类型来说,实现的是值传递,方法接收参数的值,但不能改变这些参数的值。如果要改变参数的值,则用引用数据类型,因为引用数据类型传递给方法的数据在内存中的地址。

例:

public class PassTest{
float ptValue;
public void changeInt(int value){
value=55;//在方法中对参数进行修改
}
public void changeObject(PassTest pt){
pt.ptValue=88;///在方法中对引用参数进行修改
} public static void main(String argsp[]){
int val=11;
System.out.println("初始值:"+val);
PassTest pt=new PassTest();
pt.changeInt(val);//值传递
System.out.println("值传递后:"+val);
pt.ptValue=99;
System.out.println("初始值:"+pt.ptValue);
pt.changeObject(pt);
System.out.println("引用传递后:"+pt.ptValue);
}
}

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAARgAAABUCAIAAADWAb94AAAFC0lEQVR4nO2dUZabMAxF2W23M0tiO91FP6aHurb0LBsBwXPvF3GEbDi+EWHCePv99Wvbtn3ft4LqpcYMFgnNt+Lx8TFMDO9MHnPbzKyPqJuzfHnReQvmiexuhgUn2JlpeTcRkfZ9T5ypkdOq44NjmBje0WPbr85TxQuRuofj5bnzvHWPqw0TabsjH83ziUb9/vq1N1Qx50Uqk8TnqBdvRno9Rt71RlIOoHtyqo220TvSNqHO70V2481IL8bM450KcYr0eYvnqUb1cXxXpJO0s+RDj7ZHZKZe3e9LT91PJ1ck/SF3vheT63rJzfxpnUImKSIB/HQQCSCBQ6SJiwrv62B8F65kYBHKijQ6rREJ4C/epV3ka/2cSIKpIwD4APTfkbzteMuZ+Am8hFgK11JVJHHpdWxHxAsWq8T5Lcom5Q4uR39HEhWpdUZIuMk/kCdOdCoSPEOWSKYb1e6iXiESvJvy9vehxPHumYrUvkVFgmUpf/3dTughkTyGlDsJIsEzfN+1+96OVyRTiW6RGapIc2UKkeAZ2u9IEZG6we3LbbAiIRK8CXGzIS7GaHykIs2BSPAM0yJRkQD+4Ymk57q5/axIXn27ou4B1JgitZ5ox452PWvbgO4uAO9A32wo27vEKxLAavBgH0ACiASQQPzX3yaj8Wbk6CUfl4jwcdwmkveVacg9bkvAh9KKNHRLbUi8vbgrGEyOOfAO4o9RtEyIITJE4tPxusBbGCNFpGC8yHC/SJ7wFECYoX0eaYtVmLYxPvniFaxL9Dj9kQy1A9h4IlVhQqTuRG/nvehId5oOIkEO1YN9343dz/4qvmwUIBIsS/tg39arSGZYZOZpUXWnF4FIkIP3o9XuLD8TX+7lvbsVdS9o3cTsRyTIofvrb6/FawzGH5KIXdoYHYxI8BgpFUlsm/HVhimMsFp0MQoiQQ6JFUkUEC8g0iMVCV5A7qXdkEUivlvfzovk1dtuHQYwqETqUu4bnOJbI4bO3/bSHQnAw9y8PtIE9/QCcAoe7ANIAJEAEmANWYAEWEMWIAHWkAVIYJk1ZIXto5ZiNQyzxhqyEfmDfelDALBZYw3Z7tjMl/E8AB3WWEMWkeBh1lhDFpHgYdZYQzZS+iK6IhJMsswasmUec1QbFQmuY7E1ZL1sut0LQCSIstgasl7Xut0LQCSIsswasl5ys10kF4MEcFlmDVmxS9uuk6dXSFgf1pAFSIA1ZAES4ME+gAQQCSCBoEhZV2Xdy7/IjhM3IYbiAYY5fiKkv/dP3Dkwu4uL5H3FGnKP2xhwE+IJWfGyG3BepPLdoKiYA49xp0gTYogMkfhEvKFOqIvnC/KISDpM8JRI3tFFjtpLhUtLUT2PJD53qx3NqiI+niM5PSL5I0OanrtZIk2fAfh0gv/XzhQj/nIrROpO9HbeexO3O8gsEAk63CPSYYjO6XXxuEhiDMGx6X3h9ZRPyArOiGROtaFpJ8qXHmQuZqei3YwUL+HF3Pl3JC2GiC/30kMSAzPH33bqsVORQPDsXbt4/CFJd0jBrodECsrTTYhIy/KUSFqJqr3aMIXRleHklEUk6PBgRRIFxAsQtoyKdGlFEsn1OOGtzIk06lVwr/at4Ed4t76dFOmIb/cy23Xy0a7hBZj/+3vCk+qDNjibI427xBybFwlwFW1FisxsnTNSN+LZRrmnF4D/4ME+gAQQCSABRAJIAJEAEkAkgAQQCSABRAI4zx8p8oVEKp5FoQAAAABJRU5ErkJggg==" alt="" />

构造方法是一个特殊的方法。java中每个类中都有构造方法,用来初始化该类的一个对象。构造方法具有和类名相同的名称,而且不返回任何数据类型。同时,构造方法也可以重载。构造方法只能用new操作符调用,当类创建对象的时候使用构造方法。

例:

class Point{

  int x,y;

  Point(){

    x=0;y=0;

  }

  Point(int x,int y){

    this.x=x;this.y=y;

  }

}

JAVA类与对象(四)----成员变量与局部变量 、成员方法、构造方法的更多相关文章

  1. java类与对象_成员变量和局部变量区别

    成员变量和局部变量:1.成员变量:再类中定义,用来描述对象将要有什么.2.局部变量:在类的方法中定义,在方法中临时保存数据.区别:1.作用域不同:  局部:仅限于定义它的方法  成员:整个类中都是可见 ...

  2. final 关键字:用来修饰类,方法,成员变量,局部变量

    final 关键字:用来修饰类,方法,成员变量,局部变量 表示最终的不可变的 1.final修饰一个类 表示当前的类不能有子类,也就是不能将一个类作为父类 格式: public final class ...

  3. Java学习日记基础篇(四)——类,对象之成员变量,成员方法,构造方法

    面向对象(Object Oriented) 一.面向对象杂谈 面向对象(Object Oriented),我的翻译是以物体为目标的,就是说编程的时候是建立一个物体,然后对这个物体进行操作. Java语 ...

  4. JavaSE---类、对象、成员变量、局部变量

    1.概述 1.1 类 1.1.1 类   是一种  自定义的  引用  数据类型: 1.2 对象 1.2.1 创建对象的根本途径:构造器: 通过new关键字   来调用  某个类的构造器: packa ...

  5. java类中的static成员变量和static方法简单介绍,持续补充

    一.静态成员变量 1.属于整个类而不是某个对象实例,所以可以直接通过类名和对象名去调用. 2.静态成员属于整个类,当系统第一次使用该类时,就会为其分配内存空间直到该类被卸载才会进行资源回收 二.静态方 ...

  6. 【JAVA】笔记(2)---面向过程与面向对象;类,对象;实例变量,引用;构造方法;

    面向过程与面向对象: 1.面向过程思想的典型栗子是C语言,C语言实现一个程序的流程是:在主函数中一步一步地罗列代码(定义子函数来罗列也是一样的道理),以此来实现我们想要的效果: 2.面向对象思想的典型 ...

  7. 1.7Oob 方法重载和成员变量,局部变量,构造方法

    1:方法调用,如果值有参方法,必须传递实际参数. 2:方法定义了多少个参数,传递的实际参数就 必须有多少个, 方法的作用:1:描述某个类的作用,2:软件的复用 这个复用率低,作用小,价值很低: 3:

  8. java中使用反射做一个工具类,来为指定类中的成员变量进行赋值操作,使用与多个类对象的成员变量的赋值。

    //------------------------------------------------我是代码的分割线 // 首选是一个工具类,在该工具类里面,定义了一个方法,public void s ...

  9. Java 访问限制符 在同一包中或在不同包中:使用类创建对象的权限 & 对象访问成员变量与方法的权限 & 继承的权限 & 深入理解protected权限

    一.实例成员与类成员 1. 当类的字节码被加载到内存, 类中类变量.类方法即被分配了相应内存空间.入口地址(所有对象共享). 2. 当该类创建对象后,类中实例变量被分配内存(不同对象的实例变量互不相同 ...

随机推荐

  1. JavaScript基本用法

    首次创建 $(document).ready(function () { });

  2. solr5.5教程-solr.home 配置

    solr/home是solr实例化core核的依据和入口,是必不可少的配置. 1.在web.xml中设置 <env-entry> <env-entry-name>solr/ho ...

  3. hadoop-集群管理(2)——内存设置

    http://www.cnblogs.com/yuechaotian/archive/2013/03/08/2949607.html 1. 内存 hadoop为各个守护进程(namenode,seco ...

  4. WPF拖动DataGrid中的数据到ListBox

    1.效果图: 2.XAML <Window x:Class="WpfApplication2.MainWindow" xmlns="http://schemas.m ...

  5. PayPal 开发详解(五):创建第一个应用,获取clientId和clientSecret

    1.创建APP 2.填写应用名称->创建应用 3.获取 clientId 和 clientSecret

  6. 隐藏DLL

    先来推广一下QQ群:61618925.欢迎各位爱好编程的加入. 在外挂或者病毒中,经常需要隐藏掉自己注入的DLL,以免被发现.下面就是一个隐藏DLL的通用模块,用的时候只需要加入到相关模块中即可. 详 ...

  7. 华为OJ—字符串排序(排序,忽略指定字符排序)

    http://career-oj.huawei.com/exam/ShowProblemInfo?id=2168 编写一个程序,将输入字符串中的字符按如下规则排序. 规则1:英文字母从A到Z排列,不区 ...

  8. oracle 数组类型

    create or replace function my_test(p_str varchar2) return number as --普通变量 v_var ); --固定长度数组 type v_ ...

  9. PL/SQL Developer基本用法

    一.新建存储过程

  10. 调用WCF Data Service的几点Tips

    使用Linq实现sql in statement的时候,用EF的时候可以通过Contains.Exists的方法实现.但是在使用WCF Data Service的context的时候,会报不支持该方法 ...