栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java入门(二十一)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java入门(二十一)

Java入门(二十一)

  • 新建一个Pet类
package base.oop.demo04;

public class Pet {
    String name;
    int age;
    public void shout(){
        System.out.println("叫了一声");
    }
}
  • 现在右边pet类存在一个默认的无参构造
  • 首先第一步我们要把pet给new出来
package base.oop.demo04;

public class Application {
    public static void main(String[] args) {
        Pet dog = new Pet();
        dog.name = "旺财";
        dog.age = 3;
        dog.shout();
        System.out.println(dog.name);
        System.out.println(dog.age);
    }
}
  • 首先程序运行是需要模板,第一步把Application类的代码信息放进来。
  • 那这个类有main方法,常量字符串(常量池专门存放常量)。常量池里面有旺财
  • 加载完他了,要执行main方法了。main方法是在栈的最里面的。当他执行完之后,被弹出去了,程序也差不多结束了。
  • 给 Pet dog 打一个断点
  • 往下一步的时候,他走到了右边的Pet类,那说明他要加载这个类。
  • Pet类也有个常量池,常量池也有字。(下面几个图堆栈写反了)
    - Pet这个类new的时候,进入了class Pet,当前name为null,age为0,所以肯定是没值的。
  • 那么现在对象的模板加载进来了,那他是不是要生成一个具体的对象dog。当等于dog时,也生成了一个变量。dog在栈里面是一个引用,变量的名字。真正的对象是在堆里面的。通过这个模板去new了一个Pet。shout()是引用了方法区里的shout()
  • 下面 dog.name=“旺财” ,他把旺财丢给了name,name才有值
  • 所有的值赋完了,这个对象才有这些值,才可以使用。
  • 现在我们再来new 一个 cat ,cat是要指向真实的pet。那cat和dog是两个完全不同的对象了。类是一个模板,new出来的就是一个引用名
  • 引用变量的意思是,它本身变量在栈里面是引用变量名,真正指向的是堆中具体的对象,只是通过栈给了他一个名字。本质上还是一样的东西。
  • 静态方法区,就是之前static就在这个地方,就是一开始就和类一起加载的。所有的对象都可以去用到它。
小结
  • 类是一个模板,对象是一个具体的实例。
  • 方法的定义和调用
  • 对象的引用—引用类型。引用类型对应基本类型,对象是通过引用来操作的。引用是内存图中栈的那个东西,真实指向的是堆里面的。说白了引用对象就是指向一个地址,真实操作的是堆。
  • 对象的属性,一般叫字段(成员变量),属性默认初始化。数字默认是0,0.0 。char是u0000,布尔值是false,引用类型统统为null。定义为 修饰符 属性类型 属性名 = 属性值。
  • 方法就是定义和调用,避免方法死循环。
  • 对象的创建和使用,必须使用new关键字创造对象,创造对象需要构造器。对象的属性 Person kuangshen = new Person() ,那他有属性 kuangshen.name ,这样可以调对象的属性。对象的方法: kuangshen.sleep();
  • 类中只有静态的属性、动态的行为。说白了就是属性和方法。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/692439.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号