java 复习 面向对象2
2010-11-10 12:56
127 查看
引用传递及应用
1.三种引用
基本数据的传递(值的传递)
eg:
class Demo()
{
int temp = 80; //堆内存中
}
public class Demo01
{
public static void main(String args[])
{
Demo d1 = new Demo(); //d1在栈内存中 指向堆内存的temp = 80;
fun(d1); //调用fun函数 修改temp的值 方法执行完毕以后 d2断开指向
}
public static void fun(Demo d2) //d2在栈内存中 指向堆内存中temp = 80;
{
d2.temp = 50; //d2修改了 temp的值
d1和d2都指向 堆内存中的 temp = 50;
}
}
字符串的传递:
内存地址的传递
public class Demo1
{
public static void main(String args[])
{
String str1 = "hello"; //栈内存中str1 指向堆内存中 "hello"
fun(str1); //str2与str1都指向hello, str2 = "cyq";
方法执行完后str2断开指向hello;
}
public static void fun(String str2)//栈内存中str2 指向堆内存中hello
{
str2 = "cyq"; //str2在栈内存中指向堆内存中的cyq
}
}
字符串作为属性的传递
class Demo
{
String temp = "hello"; //temp在栈内存中 指向堆内存中的hello
}
public class Demo1
{
public static void main(String args[])
{
Demo d1 = new Demo(); //d1在栈内存中指向 hello;
d1.temp = "world"; //d1在栈内存中指向 堆内存中的world
fun(d1); //修改temp的值,d1指向cyq
}
public static void fun(Demo d2) //d2在栈内存中指向堆内存中的world
{
d2.temp = "cyq"; //fun(d1)传进来后修改temp的属性值
}
}
String作为类对象传递是地址,作为类对象的属性时传递的是字符串值
总体来说,在java中,不管是引用类型还是基本数据类型,传递的都是值.
2.接收本类的引用
自己接收自己本类的引用对象
只要符合引用传递的语法,则可以向任意的地方传递
eg:
class Demo
{
private int age;
public void setAge(int age)
{
this.age = age;
}
public int getAge()
{
return age;
}
public void fun(Demo d2)//接收本类对象的引用
{
d2.age = 45; //通过对象调用本类的私有属性
}
public static void main(String args[])
{
Demo d1 = new Demo();//实例化对象
d1.setAge(45); //通过set方法设置属性
d1.fun(d1); //把d1传进方法中设置age属性
}
}
3.传递的应用
一对一的关系
一个人有一本书,一本书属于一个人
1.三种引用
基本数据的传递(值的传递)
eg:
class Demo()
{
int temp = 80; //堆内存中
}
public class Demo01
{
public static void main(String args[])
{
Demo d1 = new Demo(); //d1在栈内存中 指向堆内存的temp = 80;
fun(d1); //调用fun函数 修改temp的值 方法执行完毕以后 d2断开指向
}
public static void fun(Demo d2) //d2在栈内存中 指向堆内存中temp = 80;
{
d2.temp = 50; //d2修改了 temp的值
d1和d2都指向 堆内存中的 temp = 50;
}
}
字符串的传递:
内存地址的传递
public class Demo1
{
public static void main(String args[])
{
String str1 = "hello"; //栈内存中str1 指向堆内存中 "hello"
fun(str1); //str2与str1都指向hello, str2 = "cyq";
方法执行完后str2断开指向hello;
}
public static void fun(String str2)//栈内存中str2 指向堆内存中hello
{
str2 = "cyq"; //str2在栈内存中指向堆内存中的cyq
}
}
字符串作为属性的传递
class Demo
{
String temp = "hello"; //temp在栈内存中 指向堆内存中的hello
}
public class Demo1
{
public static void main(String args[])
{
Demo d1 = new Demo(); //d1在栈内存中指向 hello;
d1.temp = "world"; //d1在栈内存中指向 堆内存中的world
fun(d1); //修改temp的值,d1指向cyq
}
public static void fun(Demo d2) //d2在栈内存中指向堆内存中的world
{
d2.temp = "cyq"; //fun(d1)传进来后修改temp的属性值
}
}
String作为类对象传递是地址,作为类对象的属性时传递的是字符串值
总体来说,在java中,不管是引用类型还是基本数据类型,传递的都是值.
2.接收本类的引用
自己接收自己本类的引用对象
只要符合引用传递的语法,则可以向任意的地方传递
eg:
class Demo
{
private int age;
public void setAge(int age)
{
this.age = age;
}
public int getAge()
{
return age;
}
public void fun(Demo d2)//接收本类对象的引用
{
d2.age = 45; //通过对象调用本类的私有属性
}
public static void main(String args[])
{
Demo d1 = new Demo();//实例化对象
d1.setAge(45); //通过set方法设置属性
d1.fun(d1); //把d1传进方法中设置age属性
}
}
3.传递的应用
一对一的关系
一个人有一本书,一本书属于一个人
相关文章推荐
- java面向对象基础复习
- Java复习总结:Java面向对象程序设计 —面向对象(基础篇)
- java复习二:面向对象
- Java 学习笔记 - 面向对象复习
- Java基础复习:面向对象练习1
- 黑马程序员—— Java 基础 面向对象之继承 (复习)
- Java面向对象复习(一)类和对象
- 黑马程序员_java基础复习二面向对象
- Java复习笔记+经验总结-02 面向对象基础
- 复习java面向对象(继承)
- java面向对象复习
- java面向对象复习
- JAVA面向对象复习图
- (二)、Java复习笔记之面向对象
- Java基础复习---面向对象程序设计
- day05--Java面向对象复习--Java常用类
- Java面向对象基础知识复习
- 【学习笔记】java面向对象复习04
- Java面向对象总复习-QuickHit
- 【学习笔记】java面向对象复习01