首页 > 其他分享 >类与对象课后记

类与对象课后记

时间:2022-10-06 16:11:06浏览次数:53  
标签:初始化 变量 构造方法 对象 引用 课后 类型

类的定义:定义了一组大体上相似的对象。一个类所包含的方法和数据描述一组对象的共同行为和属性。
对象则是类的具体化,是类的实例。
类通过派生可以有子类,同样也可以有父类,形成层次结构。

引用类型 vs 原始数据类型
“引用”一个对象的变量称为“引用类型”的变量,有时又简称为“对象变量”。
诸如int,float之类的变量称为“原始数据类型”的变量)。

当声明一个对象类型的变量时,实际上并没有创建一个对象,此变量=null。

定义一个原始类型的变量时,会马上给其分配内存

例子:MyClass obj;int value=100;

Obj=NULL value=100.

 

 当对象不再使用时,JVM会回收MyClass对象所占用的内存,这个过程称为“垃圾回收(GC:Garbage Collection)”.

 

独特的对象引用:this

对象中的所有数据字段都是通过this指针间接引用的。

同一类中的方法可以相互调用,或者直接存取本类定义的字段,可看成其中隐含了一个this调用。

 

可以使用final定义一个“常量”对象变量               

final MyClass obj = new MyClass();

注意:“常量”对象变量不能指向另一个对象,但可以修改对象,比如设置它所引用对象的某公有字段值。

 

当“==”施加于原始数据类型变量时,是比较变量所保存的数据是否相等

当“==”施加于引用类型变量时,是比较这两个变量是否引用同一对象。

引用代表地址,所以“==”实际上相当于比较两个引用类型变量中保存的对象地址是否相同。

 

两个对象的“内容”,其实是指它们在某一时刻的所有字段的值,“内容相等”,其实是就“对应字段值”一致。

在Java中要比对两个对象的字段值,可以 “重写(override)”基类的equals()方法

Demo: ObjectEquals.java

 

当创建一个对象时,它的构造方法会被自动调用。构造方法与类名相同,没有返回值。

如果类没有定义构造函数,Java编译器在编译时会自动给它提供一个没有参数的“默认构造方法”. 如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造方法。

同一个类可以有多个构造函数,多个构造函数之间通过参数来区分。这是方法重载的一个实例。

构造函数之间可以相互调用。

 

 

可以在类中使用“{”和“}”将语句包围起来,直接将其作为类的成员。

类的这种“没有名字”的“成员”,多用于初始化类的字段。

 

可以使用“静态初始化块”初始化类的静态字段

public class Test {

public static int value;

static   {

value=100;

  }

}

可以用对象名或类名作为前缀访问静态数据

Employee newhire=new Employee();

newhire.total_employees=1;

Employee.total_employees=1;

推荐使用类名来直接访问静态字段。

 

 

类的初始化块不接收任何的参数,而且只要一创建类的对象,它们就会被执行。因此,适合于封装那些“对象创建时必须执行的代码”。

 

静态初始化块只执行一次。

创建子类型的对象时,也会导致父类型的静态初始化块的执行。

 

标签:初始化,变量,构造方法,对象,引用,课后,类型
From: https://www.cnblogs.com/kun1790051360/p/16757813.html

相关文章

  • java课后反思
        在定义变量时,我们需要对变量进行初始化才可以继续进行使用,同时,对象变量如果不引用一个真实的值,则必须·对他声明为null;  对于原始数据类型变量,可以使用==......
  • 面向对象范式和面向过程范式的不同之处
    面向对象范式和面向过程范式的不同之处面向过程在面向对象的程序设计中,数据和数据上的操作是分离的,而且这种做法要求传递数据给方法。面向对象的范式重点在于设计方法......
  • 从这两道题重新理解,JS的this、作用域、闭包、对象
    日常开发中,我们经常用到this。例如用Jquery绑定事件时,this指向触发事件的DOM元素;编写Vue、React组件时,this指向组件本身。对于新手来说,常会用一种意会的感觉去判断this的指......
  • Servlet——Response对象
    Response对象       Response设置响应数据  1、响应行        voidsetStatus(intsc):设置响应状态码  2、响应头        voidset......
  • 面向对象的特性
    一、继承(一)继承的概念生活中的继承,一般指的是子女继承父辈的财产。Python面向对象的继承指的是多个类之间的所属关系,即子类默认继承父类的所有属性和方法,具体如......
  • Python语法之类和对象
    这篇文章给大家介绍一下类和对象,类和对象是面向对象编程的核心概念。Python中的类,和我们生活的“物以类聚”类似,都是包含了这一类别内都具备的一些特征。Python中的类是......
  • 详解js中的对象的深浅拷贝
    前言本文是整理的浅拷贝和深拷贝中涉及的知识点,在工作中是非常重要的,在面试中也是必考的,希望对小伙伴们有所帮助!为什么会产生深浅拷贝?首先我们要知道一个流程1,对象属......
  • vue(8)v-model与JavaScript中array对象的配合使用
    序实现了之前代码的删除功能,并加入了对于复选框的全选,全不选,反选等功能示例代码展开查看<!DOCTYPEhtml><html> <head> <meta......
  • 面向对象-高级篇
    类变量:什么是类变量?一个可以被一个类所有对象共享的变量类变量关键字?static类变量语法?访问修饰符static数据类型变量名;[推荐使用]         ......
  • Django 之ModelAdmin对象
    一、后台管理系统配置1在该表对应的models类里面添加一个Meta类classMeta:verbose_name_plural='用户表'#指定该表在admin后台的名字为:用户表#verbo......