对象调用成员的过程
2011-11-15 17:55
127 查看
class Person
{
private String name;
private int age;
private static String country = "cn";
{
this.name = name;
this.age = age;
}
{
System.out.println(name+".."+age);
}
public void setName(String name)
{
this.name = name;
}
public void speak()
{
System.out.println(this.name+"..."+this.age);
}
public static void showCountry()
{
System.out.println("country="+Person.country);
Person.method();
}
public static void method()
{
System.out.println("method run");
}
}
class PersonDemo
{
public static void main(String[] args)
{
Person p = new Person("zhangsan",20);
p.setName = ("lisi");
}
}
图解如下:
/*
Person p = new Person("zhangsan",20);
给句话都做了什么事情?
1,因为new用了Person。class 所以会先找到Person文件并加载到内存中,
2,执行给类中的static代码块,如果的话,给Person。class类进行初始化。
3,在堆内存中开辟空间,分配内训地址
4,在堆内存中建立对象的特有属性,并进行默认的初始化
5,对对象进行初始化
6,对对象惊醒构造代码块初始化
7,对对象进行对应的构造函数的初始化
8,将内存地址付给占内存中的变量
*/
{
private String name;
private int age;
private static String country = "cn";
{
this.name = name;
this.age = age;
}
{
System.out.println(name+".."+age);
}
public void setName(String name)
{
this.name = name;
}
public void speak()
{
System.out.println(this.name+"..."+this.age);
}
public static void showCountry()
{
System.out.println("country="+Person.country);
Person.method();
}
public static void method()
{
System.out.println("method run");
}
}
class PersonDemo
{
public static void main(String[] args)
{
Person p = new Person("zhangsan",20);
p.setName = ("lisi");
}
}
图解如下:
/*
Person p = new Person("zhangsan",20);
给句话都做了什么事情?
1,因为new用了Person。class 所以会先找到Person文件并加载到内存中,
2,执行给类中的static代码块,如果的话,给Person。class类进行初始化。
3,在堆内存中开辟空间,分配内训地址
4,在堆内存中建立对象的特有属性,并进行默认的初始化
5,对对象进行初始化
6,对对象惊醒构造代码块初始化
7,对对象进行对应的构造函数的初始化
8,将内存地址付给占内存中的变量
*/
![](http://hi.csdn.net/attachment/201111/15/0_1321351072MQze.gif)
相关文章推荐
- Java基础——Static修饰符+静态相关+帮助文档制作+对象初始化_调用成员过程+单例设计
- 黑马程序员--03.Java面向对象--04.【对象初始化的过程】【对象调用成员的过程】
- 对象的初始化过程和对象调用成员的过程
- 黑马程序员_day06 面向对象(静态,对象的初始化和对象调用成员过程,单例设计模式)
- 黑马程序员_Java基础_面向对象(Static的使用、对象初始化和调用成员过程、单例设计模式)
- 制作程序文档_主函数_静态代码块_对象的初始化过程_对象调用成员过程
- 黑马程序员-day06-对象实例化过程和调用成员过程
- 对象调用成员过程
- 在派生类中使用对象成员时,构造函数和析构函数的作用过程。
- C++匿名对象调用成员函数
- Java中调用对象方法的执行过程
- C++类对象内存模型与成员函数调用分析(上)
- 使用反射依导航路径调用对象成员方法,或返回对象子、孙属性或字段成员[转]
- C#在父窗口中调用子窗口的过程(无法访问已释放的对象)
- this指针指向当前调用对象,只是用于类的非静态成员函数。静态函数和全局函数 无当前对象,无this指针。
- 定义一个包含私有成员变量和函数的类,再定义一个内部类,在内部类函数中访问外部成员变量,并调用外部函数。在外部类函数中创建内部类对象,调用内部类函数
- egg egg::E(100);静态成员(对象)是如何调用非静态的、私有的成员(构造)函数的呢?
- (转)C#在父窗口中调用子窗口的过程(无法访问已释放的对象)
- C++类对象内存模型与成员函数调用分析(上)