JAVA类与对象(四)----成员变量与局部变量 、成员方法、构造方法
类体中的变量分为两部分。变量定义部分定义的变量为类的成员变量,在方法体中定义的变量和方法中涉及的变量称为局部变量。
成员变量和局部变量的区别:
(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类与对象(四)----成员变量与局部变量 、成员方法、构造方法的更多相关文章
- java类与对象_成员变量和局部变量区别
成员变量和局部变量:1.成员变量:再类中定义,用来描述对象将要有什么.2.局部变量:在类的方法中定义,在方法中临时保存数据.区别:1.作用域不同: 局部:仅限于定义它的方法 成员:整个类中都是可见 ...
- final 关键字:用来修饰类,方法,成员变量,局部变量
final 关键字:用来修饰类,方法,成员变量,局部变量 表示最终的不可变的 1.final修饰一个类 表示当前的类不能有子类,也就是不能将一个类作为父类 格式: public final class ...
- Java学习日记基础篇(四)——类,对象之成员变量,成员方法,构造方法
面向对象(Object Oriented) 一.面向对象杂谈 面向对象(Object Oriented),我的翻译是以物体为目标的,就是说编程的时候是建立一个物体,然后对这个物体进行操作. Java语 ...
- JavaSE---类、对象、成员变量、局部变量
1.概述 1.1 类 1.1.1 类 是一种 自定义的 引用 数据类型: 1.2 对象 1.2.1 创建对象的根本途径:构造器: 通过new关键字 来调用 某个类的构造器: packa ...
- java类中的static成员变量和static方法简单介绍,持续补充
一.静态成员变量 1.属于整个类而不是某个对象实例,所以可以直接通过类名和对象名去调用. 2.静态成员属于整个类,当系统第一次使用该类时,就会为其分配内存空间直到该类被卸载才会进行资源回收 二.静态方 ...
- 【JAVA】笔记(2)---面向过程与面向对象;类,对象;实例变量,引用;构造方法;
面向过程与面向对象: 1.面向过程思想的典型栗子是C语言,C语言实现一个程序的流程是:在主函数中一步一步地罗列代码(定义子函数来罗列也是一样的道理),以此来实现我们想要的效果: 2.面向对象思想的典型 ...
- 1.7Oob 方法重载和成员变量,局部变量,构造方法
1:方法调用,如果值有参方法,必须传递实际参数. 2:方法定义了多少个参数,传递的实际参数就 必须有多少个, 方法的作用:1:描述某个类的作用,2:软件的复用 这个复用率低,作用小,价值很低: 3:
- java中使用反射做一个工具类,来为指定类中的成员变量进行赋值操作,使用与多个类对象的成员变量的赋值。
//------------------------------------------------我是代码的分割线 // 首选是一个工具类,在该工具类里面,定义了一个方法,public void s ...
- Java 访问限制符 在同一包中或在不同包中:使用类创建对象的权限 & 对象访问成员变量与方法的权限 & 继承的权限 & 深入理解protected权限
一.实例成员与类成员 1. 当类的字节码被加载到内存, 类中类变量.类方法即被分配了相应内存空间.入口地址(所有对象共享). 2. 当该类创建对象后,类中实例变量被分配内存(不同对象的实例变量互不相同 ...
随机推荐
- jQuery遍历 slice()方法
今天做页面,遇到一个滚动的swipe,需要4个<li> 一组,然后在外层加个<ul>,方法如下: $('.xxxxx li').each(function(n){ $('.xx ...
- Mybatis SQL语句查询
MyBatis中使用in查询时的注意事项 foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach一共有三种类型,分别为List,[](array),Map三种. ...
- php mkdir函数
if(!is_dir($targetPath)){mkdir($targetPath, 0700); } is_dir 判断目录是否存在 mkdir 不能创建多级目录
- jQuery实现动态添加和删除一个div
本文主要给大家简单介绍一下如何动态的在一个元素添加和删除div,希望能够得到举一反三之效. 代码实例如下: <!DOCTYPE html> <html> <head> ...
- Linux安装VritualBox实现虚拟机win2003端口映射 支持远程
1. 使用VNC登录到Linux系统 2. 安装VritualBox 找到VritualBox的软件包 这里的是run格式的 可以直接在终端运行 需要几分钟时间 3.VritualBox新建虚拟机 ...
- SQL SERVER 2008 R2 还原数据库3154错误
1.SQL SERVER 2008 在还原数据库时,会报错. 提示错误:"备份集中的数据库备份与现有的 '***' 数据库不同.RESTORE DATABASE 正在异常终止. (Micro ...
- Dev的DocumentManager添加窗体
1.DocumentManager要设置自己的MdiParent属性 2.主窗体设置IsMidContainer为True 3.要生成的窗体设置MdiParent为主窗体 4.正常创建窗体,然后就可以 ...
- 复习URLHttpConnection方式GET,POST方式链接网络解析uri
xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:t ...
- Pull解析xml
没有写抛出的异常,例子是含有多个Person对象persons.xml(此片内容未写写入的代码),包含id,name,email,address标签,Person对象含有id,name,email,a ...
- Dll学习二_Dll 窗体中动态创建数据并使用Demo
沿用上一篇Demo 环境:DelphiXE,XP,SQL2005 贴出改动过的单元代码: dbGrid控件版: unit SubMain_Unit; interface uses Windows, M ...