- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CH_4_Java面向对象的程序设计4
public class 第0x04讲
java面向对象的程序设计
extends Java 语言与网络编程{ }
4.9 Java变量及其传递
4.10 内部类
2017-6-9
中国矿业大学计算机科学与技术学院
2
4.9 Java变量及其传递
4.9.1 基本数据变量与引用型变量
4.9.2 成员变量与局部变量
4.9.3 变量的传递
4.9.4 引用型变量的比较
2017-6-9
中国矿业大学计算机科学与技术学院
3
4.9.1 基本数据变量与引用型变量
2017-6-9
中国矿业大学计算机科学与技术学院
4
基本类型变量存储示意图
引用型变量存储示意图
public class MyDate {
private int day = 12;
private int month = 6;
private int year = 2015;
public MyDate(int year, int month, int day) {
this.year = year; this.month = month; this.day = day;
}
void addYear() {
year++;
}
public void display() {
System.out.println(year + - + month + - + day);
}
public static void main(String[] args) {
MyDate m, n;
m = new MyDate(2003, 9, 22);
n = m;
n.addYear();
m.display();
n.display();
System.out.println(m.toString());
System.out.println(n.toString());
}
}
2017-6-9
中国矿业大学计算机科学与技术学院
5
m
n
7ea06d25
22
9
2003
day
month
year
堆
MyDate m, n;
m = new MyDate(2003, 9, 22);
n = m;
n.addYear();
m.display();
n.display();
System.out.println(m.toString());
System.out.println(n.toString());
2017-6-9
中国矿业大学计算机科学与技术学院
6
7ea06d25
4.9.2 成员变量与局部变量
成员变量与局部变量的区别?
语法上,成员变量属于类或接口,局部变量是方法中定义的变量或方法的参变量;成员变量可以被public,private,static等修饰,局部变量则不能;成员变量及局部变量都可以被final修饰
存储方式看,成员变量是对象的一部分,存在堆中;局部变量存在栈中
在内存中的存在时间看,成员变量随着对象的创建而存在,局部变量随着方法的调用而产生,随着方法调用结束而自动消失
2017-6-9
中国矿业大学计算机科学与技术学院
7
4.9.2 成员变量与局部变量
成员变量与局部变量的区别?
成员变量会自动以该类型的默认值(0, false, null等)赋值;局部变量必须显式地赋值后才能使用
2017-6-9
中国矿业大学计算机科学与技术学院
8
class A {
int a;
void m() {
int b;
System.out.println(a); //合法的,a的值为0
System.out.println(b); //不合法,编译不通过
}
}
4.9.3 变量的传递
按值传递: 当将一个参数传递给一个函数时,函数接收的是原始值的一个副本。因此,如果函数修改了该参数,仅改变副本,而原始值保持不变
按引用传递: 当将一个参数传递给一个函数时,函数接收的原始值的内存地址,而不是值的副本,因此,如果修改了该参数,调用代码中的原始值也随之改变
2017-6-9
中国矿业大学计算机科学与技术学院
9
Java中按值传递所有参数, 制作所有参数的副本, 而不管它们的类型
2017-6-9
中国矿业大学计算机科学与技术学院
10
public class TestTransOfValue {
public static void main(String args[]) {
int val=10;
StringBuffer sb1, sb2;
sb1 = new StringBuffer(apples);
sb2 = new StringBuffer(pears);
System.out.println(val is + val);
System.out.println(sb1 is + sb
文档评论(0)