Java学习记录(2)

类与对象

  • 类(class,使用类来创建对象,如:Person p = new Person();)与对象(object,也被称为实例,instance),其中类是某一批对象的抽象,可以把类理解成某些概念;对象才是一个具体存在的实体,从这个意义上来看,日常所说的人,其实是人的实例,而不是人类。
  • 定义类的简单语法如下:
[修饰名]class 类名{
    //零到多个构造器定义(必须利用构造器给成员变量赋值)
    //零到多个成员变量(类比于结构体)
    //零到多个方法(类比于函数)
}
  • 一个类中可以有多个构造函数,且可以同名,只要它们的参数表不同,这种情况被称作重载。
  • 对于类的修饰名有以下几种:
  • public、final、abstract,或者完全省略。
  • 在类中各成员可以相互调用,但是static修饰的成员不能访问没有static修饰的成员。
  • 对成员变量的修饰符在上一次的笔记中有写到过,以下作为补充:
  • Private(当前类访问权限):如果类里的一个成员(包括成员变量、方法和构造器等)使用private访问控制符来修饰,则这个成员只能在当前类的内部被访问。这个访问控制符用于修饰成员变量最合适,使用它修饰成员变量就可以把成员变量隐藏在该类的内部。
  • Default (包访问权限):如果类里的一个成员(包括成员变量、方法、构造器等)或者一个外部类不使用任何访问控制符修饰,就称它是包访问权限,default访问控制的成员或外部类可以被相同包下的其他类访问。
  • Protected(子类访问权限):如果一个成员(包括成员变量、方法和构造器等)使用protected访问控制符修饰,那么这个成员既可以被同一个包中的其他类访问,也可以被不同包中的子类访问。在通常情况下,如果使用protected来修饰一个方法,通常是希望其子类来重写这个方法。
  • Public(公共访问权限)这是一个最宽松的访问控制级别,如果一个成员(包括成员变量、方法、构造器等)或者一个外部类使用public访问控制符修饰,那么这个成员或外部类就可以被所有类访问,不管访问类和被访问类是否处于同一个包中,是否具有父子继承关系。
  • 对于变量,变量分为成员变量局部变量,其中成员变量又分为实例变量(不以static修饰)和类变量(以static修饰);局部变量包括形参(方法签名中定义的变量)、方法局部变量(在方法内定义)、代码块局部变量(在代码块内定义)。
  • 关于对象:
  • 创建对象的根本途径是构造器,通过new关键字来调用某个类的构造器即可创建这个类的实例。
  • 对象的this引用,this关键字总是指向调用该方法的对象。

  • import可以向某个Java文件中导入指定包层次下某个类或者全部类,import语句应该出现在package(如果存在)语句之后、类定义之前;多个import语句用于导入多个包层次下的类。
  • 导入规则:import+包+包中类的名字;
import lee.sub.Apple;//使用import导入lee.sub.Apple类
import java.util.*;//"*"只能代表类,不能代表包,因此使用该语句时,它表明导入util下的所有类

类的继承

  • Java的继承通过关键字extends实现,实现继承的叫子类,被继承的称为父类。(子类不能获得父类的构造器)
修饰符 class SubClass extends SuperClass
{
    //类定义
}
  • 子类会继承父类的所有属性(除private,可用protected,前提是在同一个包内),在Java中每个子类只有一个直接父类,但可以有多个间接父类。
  • Super用于限定该对象调用它从父类继承得到的实例变量或方法。(super与this一样不能调用static修饰的方法)如果子类定义了和父类同名的实例变量,则会发生子类实例变量隐藏父类实例变量的情形。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值