javaSE类和对象

    xiaoxiao2023-10-02  159

    类和对象 1.语法: 访问限定符 class类名称{ 属性 : 访问限定符 属性数据类型 构造方法 : 访问限定符 方法名和类名相同(参数列表){…} 方法 :访问限定符 返回值 方法名称(参数列表){…} 静态属性:访问限定符 static 属性数据类型 属性名称; 静态方法:访问限定符 static 返回值类型 (参数列表){…} } 2. 访问限定符 1.顶级访问限定符, public (一个文件中只有一个public,类名==文件名) 不写 2.普同访问限定符 public/protected/不写/private 3. this的用法 1.可以访问属性+【方法】 在方法(包括构造方法) this.属性 this.方法(…) 一般用this调用是为了防止命名遮挡,有歧义 2.this 代表这个对象本身 用在打印本身,传递参数 name shadow(命名遮挡) 3.this(…)用在构造方法第一行 4.static静态属性|静态方法 和对象解绑 1.静态方法 没有隐式对象传入,不能用this 2.静态属性 保存位置不同,对象之间可以共享 5.模型 java中 内存简单的分成 栈区|堆区|方法区 栈区:局部变量 形参 堆区:对象(属性信息) 引用在三个区都可以放,要看实际情况放在哪个区 方法区:类信息(方法信息,静态方法信息,静态属性)

    6.哪种对象会被视为垃圾,没有引用指向的对象(GC写的再好,也需要性能损耗,对象还是有数量得到) 属性初始化 1.在定义时直接初始化 class A{} class B{ A ref2=new A(); } 2.在构造函数中初始化 class A {} class B{ A ref2; B() {ref2=new A(); } } 3.在构造代码块中初始化 class A {} class B { A ref2; { ref2=new A(); } } 如果定义多个代码块,会按顺序执行 代码块的初始化会插入到构造方法中先执行 7. 静态属性初始化(发生在类被加载的过程中) a.定义时初始化 static A a=new A(); b.静态代码块 static { a=new A(); //静态代码块也是按照定义顺序来执行 } 类加载:*. java–javac命令编译—> *.class(存在硬盘上的文件) 运行期间(JVM调用相应的类加载器)

    最新回复(0)