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. 当该类创建对象后,类中实例变量被分配内存(不同对象的实例变量互不相同 ...
随机推荐
- spring整合freemarker 自定义标签
1.自定义标签实现 TemplateDirectiveModel 接口 2.spring 配置,注意标红的两行 <bean id="freemarkerConfig" cla ...
- .NET中的IO操作之文件流
读操作 //1.创建文件流 FileStream fsRead =new FileStream("1.txt",FileMode.Open); //2.创建缓冲区,正常情况下,是不 ...
- [原]sdut2605 A^X mod P 山东省第四届ACM省赛(打表,快速幂模思想,哈希)
本文出自:http://blog.csdn.net/svitter 题意: f(x) = K, x = 1 f(x) = (a*f(x-1) + b)%m , x > 1 求出( A^(f(1) ...
- Jquery动画效果--地铁站名指示等效果
源码参考:源码爱好者--jQuery仿地铁线路指示灯效果,经修改和美化,特此记录一下. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tra ...
- Sqlserver数据库存储路径的修改
Sqlserver数据库存储路径的修改 Sqlserver数据库存储路径问题:本系统sqlserver路径默认是存储在C盘目录下的,由于数据会慢慢变大和避免重装系统数据丢失等问题,最好手动将路径设置在 ...
- 刚开始学IOS遇到的类和方法
框架:Core FoundationCFGetRetainCount. 类:NSRunLoop.NSAutoreleasePool.NSStringFormClass.UIApplicationMai ...
- 官网下载Spring dist
新版Spring官网下载Spring的dist可真是麻烦 跟着下面的贴图走吧,有些在网页的下面,需要打开相应页面后往下拉拉. 下载完后解压lib里面就是各种jar包了 真是麻烦啊,不好找,不过Spri ...
- [leetcode]_Sum Root to Leaf Numbers
题目:计算一棵二叉树所有路径组成的数的总和. 思考:也是DFS的基础应用.虽然还是套着别人的DFS框架写的,但是学习通常会经历先模拟,再创新的过程. 代码: private int sum = 0; ...
- kettle的windows安装
1.首先去官网下载安装包,这个安装包在所有平台上是通用的. 2.kettle是java语言开发的,所以需要配置JAVA_HOME 3.解压kettle的安装包 4.配置环境变量,KETTLE_HOME ...
- 三、MongoDB的创建、更新和删除
一.MongoDB的下载.安装与部署 二.MongoDB的基础知识简介 三.MongoDB的创建.更新和删除 概要 下面开始学习MongoDB最重要也是最基础的部分:C(创建)R(查询)U(更新)D( ...