美文网首页
java面向对象

java面向对象

作者: 一直很安静_25ae | 来源:发表于2020-04-05 19:03 被阅读0次

    类的定义以及对象的创建

    • 类的创建
    public class 类名 {
    
    }
    

    java中所有对象都是new出来的,所有对象的内存都是在堆空间的,所有保存对象的变量都是引用类型

    java运行时环境有个垃圾回收器(garbage collect,简称GC),会自动回收不在使用的内存

    java程序的内存划分

    java虚拟机在执行java程序时,会将内存划分为若干个不同的数据区域,主要有:

    • pc寄存器:存储java虚拟机正在执行的字节码指令的地址
    • java虚拟机栈:存储栈帧
    • 堆:存储GC所管理的各种对象
    • 方法区:存储每一个类的结构信息(比如字段和方法信息,构造方法和普通方法的字节码等)
    • 本地方法栈:用来支持native方法的调用(比如用c语言写的方法)

    构造方法

    构造方法也叫构造器,能够更方便的创建一个对象

    • 方法名必须和类名一样
    • 没有返回值类型
    • 可以重载
    //类名是dog
    public class dog {
        public int price;
        //这个就是构造方法 没有返回值并且和类名一样
        public  dog(int  price) {   
        }
    //这个也是构造方法 没有返回值并且和类名一样
        public  dog() {     
        }
    
    }
    

    this(跟oc中的self差不多)

    this是一个指向当前对象的引用,常见的用途是:

    • 访问当前类中定义的成员变量
    • 调用当前类中定义的方法(包括构造方法)
    public class dog {
        public int price;
        public  dog(int  price) {   
        }
        public  dog() {
            this(10);//调用构造方法是用this调用的
    //下面的这种调用就是错误的
           //dog(10);
        }
    }
    

    this的本质是一个隐藏的位置最靠前的方法参数

    package包

    • java中的包就是其他编程语言中的命名空间,包的本质是文件夹,常见的作用是:
      • 将不同的类进行组织管理,访问控制
      • 解决命名冲突
    • 命名建议
      • 为保证包名的唯一性,一般包名都以公司的域名倒写开头(eg:com.baidu)
      • 全部是小写(以避免与某些类名或者接口名冲突)
    • 类的第一句代码必须使用package声明自己属于哪个包
      QQ20200405-203032@2x.png

    如何使用一个类

    要想正常使用一个类,必须得知道这个类的具体位置(在哪个包),有3种常见的方式来使用一个类

    • 使用类的全名(不推荐使用)
    com.baidu.model.Dog dog = new com.baidu.model.Dog();
    
    • 使用import导入指定的类名


      image.png
    • 使用import导入整个包的所有类


      image.png

    相关文章

      网友评论

          本文标题:java面向对象

          本文链接:https://www.haomeiwen.com/subject/abzuphtx.html