类与对象

类是对某类具有相同特征的对象的抽象概述,类是数据属性和其相关操作封装在一起的集合体,包括了对象的数据成员和成员方法(特征和行为)。,类是对象的模板和蓝图
Java程序中的类一般分为两种

  1. 系统定义的类:即Java类库,是系统定义好的类
    编程时可以直接利用已有的Java类库,完成某些特定功能,无需自己从头编写,这样不仅可以提高编程效率,也可以保证软件质量,使用import语句可以引入系统类或系统类所在的包。
  2. 用户自己定义的类
[类修饰符] class 类名 [extends 父类名] [implements 接口列表] {
数据成员
成员方法
}

构造方法(constructor):是创建java对象的重要途径,通过new关键字调用构造方法时,后遭方法也确实返回了该类对象,但这个对象并不是完全由构造方法负责创建的
通过new关键字调用,若没有定义构造方法编译器会自动定义一个无参的构造函数,如果已经定义好则不会自动添加,构造方法名必须与类名相同
1.分配对象空间,并将对象成员变量初始化为0或null
2.执行属性值的显示初始化
3.执行构造方法
4.返回对象的地址给相关的变量

内部类(innerclasses):

  1. 一般情况下,我们把类定义成独立的单元,有些情况下,我们把一个类放在另一个类的内部定义,称为内部类
  2. 作用:
  • 内部类提供了更好的封装,只能让外部类直接访问,不允许同一个包中的其他类直接访问

  • 内部类可以直接访问外部类的私有属性,内部类被当成其外部类的成员。但外部类不能访问内部类的内部属性

  1. 内部类的使用场合:
      由于内部类提供了更好的封装特性,并且可以很方便的访问外部类的属性,所以,通常内部类在只为所在外部类提供服务的情况下优先使用
  2. 内部类的分类:
  • 成员内部类(可以使用private、proteted、public进行任意修饰。)

a.非静态内部类:外部类中使用非静态内部类和平时使用其他类没什么不同
i. 非静态内部类必须寄存在一个外部类对象里。如果有一个非静态内部类对象那么一定存在对应的外部类对象,非静态内部类对象单独属于外部类的某个对象
ii. 非静态内部类可以使用外部类的成员,但是外部类不能直接访问非静态内部类成员
iii.非静态内部类不能有静态方法、静态属性、静态初始化模块
iv.静态成员不能访问非静态成员:外部类的静态方法、静态代码块不能访问非静态内部类,包括不能使用非静态内部类定义变量、创建实例;
v.成员变量访问要点:
内部类里方法的局部变量:变量名
内部类属性:this.变量名
外部类属性:外部类名.this.变量名
vi.内部类的访问
外部类中定义内部类:new InnerClass()
外部类以外的地方使用非静态内部类:

Outer.inner varname = OuterObject.new Inner()

b.静态内部类
i.定义方式

static class ClassName {
	//类体;
}

ii.使用要点:
当一个静态内部类对象存在,并不一定存在对应的外部类对象。因此静态内部类的实例方法不能直接访问外部类的实例方法
静态内部类看作外部类的一个静态成员,因此外部类的方法中可以通过:静态内部类.名字 访问静态内部类的静态成员。通过new静态内部类()访问静态内部类的实例
在外部类的外面创建静态内部类


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值