欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【Java】对象与类

程序员文章站 2024-03-16 10:32:16
...

类和对象

类的成员

属性

  1. 属性(成员变量)vs 局部变量
  • 在类中声明的位置不同
    属性:直接定义在的一对{}内
    局部变量:声明在方法内、方法形参、代码器内、代码块内、构造器形参、构造器内部的变量
  • 权限修饰符的不同
    可以在声明属性时,指明其权限,使用权限修饰符(private、public、缺省、protected)
    局部变量不可以使用权限修饰符
  • 默认初始化值
    属性根据其类型有默认初始化值
    局部变量没有默认初始化值,因此在调用局部变量时必须赋值。
  • 内存中加载位置不一样
    属性加载到堆空间中(非static)
    局部变量加载到栈空间
  1. 属性赋值的先后顺序

默认初始化->显示初始化->构造器中赋值->通过对象.方法或对象.属性的方式赋值

方法

  1. 方法的声明: 权限修饰符 返回值类型 方法名(形参列表){
    }

  2. 方法的使用中,可以调用当前类的属性和方法。
    方法中不能定义方法。

方法重载

  1. 在同一个类中,允许存在一个以上的同名方法,只要它们参数的个数或者参数的类型不同即可。
  2. 方法的签名:方法名和参数类型。因此不能有两个名字相同、参数类型也相同却有不同返回类型的方法。
  3. 判断是否重载和方法的权限修饰符、返回值类型、参数变量名、方法体都没有关系。

方法参数

方法参数的值传递机制
  1. 形参和实参
  • 形参:方法定义时,声明的小括号内的参数
  • 实参:方法调用时,实际传给形参的数据
  1. Java 是按值调用的,也就是方法得到的是所有参数值的一个副本
    变量赋值:
  • 基本数据类型:赋值的是变量所保存的数据值
  • 引用数据类型:赋值的是变量所保存数据的地址值

因此对应的值传递机制:

  • 参数是基本数据类型:实参赋给形参的是实参真实存储的数据值
  • 参数是引用数据类型:实参赋给形参的是实参存储数据的地址值
    【Java】对象与类
可变个数的形参

【Java】对象与类

  1. 格式:数据类型… 变量名
  2. 传入参数可以是0个,1个,2个
  3. 和形参类型也相同的数组之间不共存,即有String[] strs 就不能有String … strs,因为后者就是用来代替前者的,想更简化
  4. 可变个数形参在方法的形参中,必须声明在末尾,并且最多只能声明一个可变形参
    【Java】对象与类

构造器

  1. 构造器的作用:
    创建对象,给对象初始化,因此构造器总是结合new运算符来调用
  2. 构造器与类同名
  3. 一旦显示调用了构造器,系统就不再提供默认的空参构造器
  4. 每个类中至少有一个构造器,多个构造器之间构成重载

对象

匿名对象

  1. 我们创建的对象,没有显示的赋给一个变量名,即为匿名对象
new Student().方法;//不显示赋给变量名直接调用方法 
  1. 特征:匿名对象智能调用一次,因为new一次就是一个新的对象了
  2. 匿名对象的使用:作为形参
    【Java】对象与类

对象的内存解析

【Java】对象与类
【Java】对象与类

类的三大特征

封装

封装性体现:

  • 将类的属性私有化(private),同时提供公共的(public)方法来获取(getXxx)和设置(setXxx)
  • 不对外暴露的私有的方法

权限修饰符

  1. 封装性的体现需要权限修饰符来配合,Java规定四种权限(从小到大排列):private、缺省、protected、public
  2. 四种权限可以用来修饰类及类的内部结构:
    属性、方法、构造器、内部类
  3. 修饰类只能用:缺省或public
    【Java】对象与类

继承

多态

关键字

this

this可以理解为当前对象

  1. this可以用来修饰属性、方法和构造器
  • this修饰属性和方法
    在类的方法中,我们可以使用“this”.属性 或 “this”.方法,调用当前对象属性或方法。但通常都省略this。但如果方法的形参和类的属性同名时,必须显示使用“this.变量”的方式,表明是该属性而不是形参。
    在类的构造器中, this.属性 调用当前正在创建的对象的属性或方法
  • this修饰或调用构造器
    在类的构造器中,可以现实的用 this(形参列表)方式,调用本类中指定的其他构造器

    规定:this(形参列表)必须声明在当前构造器的首行

【Java】对象与类

package

  1. 为了更好实现项目类的管理,提出包package的概念
  2. 使用package声明类或接口所属的包,声明在源文件的首行
  3. 包属于标识符;每“.”一次,就代表一层文件目录
  4. 同一个包下不能命名同名的接口、类;不同的包下可以
    【Java】对象与类

import

  1. 在源文件显示地使用import结构导入指定包下的类、接口
  2. 可以使用xxx.* 表示导入这个包下的所有结构。但如果使用xxx子包下的结构,仍需要显示调用。
  3. 使用的类或接口是在java.lang包下定义的,则可省略import
  4. 如果源文件中使用了不同包下的同名类,则必须至少有一个用全类名的方式显示
  5. import static导入指定类或接口中的静态结构
相关标签: java