首页 > 其他分享 >对象的实例化过程简说

对象的实例化过程简说

时间:2023-01-12 22:12:13浏览次数:29  
标签:初始化 String 对象 子类 wuyi Son 实例 简说 public

对象的实例化过程简说

  1. .class文件加载 加载顺序: JVM运行时,首先加载主程序(含main()的那个类)中的那个类,>其次父类,>再次子类

  2. 在栈中开辟引用变量的空间, 变量值为null;

  3. 调用new在堆中开辟内存,并初始化属性(父类和子类) int 0; double 0.0; String null;

  4. 子类构造方法进栈,

  5. 显式初始化父类属性(如果有)

  6. 父类构造方法进栈,执行完后出栈

  7. 显示初始化子类属性(如果有)

  8. 调用方法进栈,初始化局部变量,赋值,执行完后出栈,方法被垃圾回收器处理

  9. 将堆中的对象地址赋值给引用变量

  10. 子类构造方法出栈

    tip:

    1. java中对于属性的赋值顺序

      • 默认初始化,>>显示初始化/代码块初始化, >>构造初始化, >>对象.属性初始化

      • 显示初始化 / 代码块初始化,那个在前,那个先初始化

    1. String类型的变量值引用的为字符串常量池中的地址

    2. 常量在类加载过程,链接阶段中的解析步骤时就已经初始化 protected final int SEX=1;

public class Test{
   public void main(String[] args){
       Son s=new Son();
       s.showSay("good");
       s.setWY("用枪棍");
       s.name="花木兰";
       System.out.println(s);
  }
}
class Person{
   private String wuyi;
   String name;
   int age;
   protected final int SEX=1;
   
   public Person(){
       
  }
   
   public void showWuYi(String wuyi){
       System.out.println(wuyi);
  }
   public void setWY(String wuyi){
       this.wuyi=wuyi;
  }
}
class Son extends Person{    
   public Son(){
       
  }
   
   String say;
   double weight=45;
   
   public void showSay(String say){
       say="巧舌如簧";
       System.out.println(say);
       showWuYi("摔跤,擒拿");
  }
   @Override
public String toString() {
//这里super与this的效果等同,也可以省略不写;
return "Son [name=" + name + ", weight=" + weight + ", SEX=" + super.SEX + ", wuyi=" + this.wuyi + "]";
}
}

 

 

标签:初始化,String,对象,子类,wuyi,Son,实例,简说,public
From: https://www.cnblogs.com/smcow/p/17048054.html

相关文章

  • python 远端url转成文本对象上传AWS
    上传文件到AWS及其他资源池defupload_initial_avatar(recruiter,image_object):try:file_path=recruiter.avatar_dir_path(image_object.name.split(......
  • 实例化对象内自产自销
    classChain(object):def__init__(self,path=''):self._path=pathdef__call__(self,user_name=''):returnChain('%s/%s'%(......
  • Python----类和面向对象
    #驼峰命名法classCall_Phone():#类当中的函数叫类方法,类下面添加函数时会自动添加self.self代表类的实例#类的方法必须有一个额外的参数,惯例为self,后面......
  • C# 中,对象转JSON以及对象转JSON字符串或者反向转换
    对象转JSON:1privatevoidbutton3_Click(objectsender,EventArgse)2{3SaleOrder_Save_Main.MainSM=newSaleOrder_Save_Main......
  • wkhtmltopdf 目录对象使用 及 目录样式分享
    最近又是更新了报告模板的样式新使用了目录对象因为直接生成的目录样式比较丑所以这边使用的是自定义xsl                    ......
  • python的迭代对象和迭代器
    Python中迭代对象(Iterable)是非常核心的内容,今天就和大家分享一下,什么是迭代对象和迭代器.简单来说迭代就等于循环,那么迭代对象就是可以用for循环的对象.一句话记......
  • Oracle修改实例名
    只需要修改环境变量ORACLE_ID,口令文件及参数文件的名称即可关闭数据库、停止实例SQL>shutdownimmediateDatabaseclosed.Databasedismounted.ORACLEinstanc......
  • java8 对象转 Map 时重复 key Duplicate key xxxx
    java8对象转Map时重复keyDuplicatekeyxxxxhttps://dongguabai.blog.csdn.net/article/details/98397784?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_rel......
  • EF 操作实例
    一、Linq语法List操作1.1         有参       publicList<GoodsInfo>ShowInfo(stringGName,int?Gid)       {           ......
  • jQuery对象的筛选(过滤)
    视频<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>15_筛选_过滤</title></head><body><ul><li>AAAAA</li><lititle="hello"class="box......