【Java学习笔记】类与对象(上)

静态变量与静态方法

static修饰的成员表明它属于这个类本身,而不是属于该类的单个实例,所以静态变量与静态方法,可以在没有创建对象的情况下进行调用,如Java类库中的Math类中,大量的数学函数,可以在不创建Math类对象的情况下,调用Math.sqrt()、Math.random()等方法。同时也要避免用对象去调用类中的static修饰的成员变量、方法的代码。

方法签名

方法名 + 参数列表 = 唯一标识

类的关系:依赖、聚合、继承

依赖:“user-a”关系,如当A类的成员方法调用B类的成员方法时,就说A类依赖B类,可以是双向的。
聚合:“has-a”关系,如汽车有发动机、轮胎、车体。
聚合关系
继承:“is-a”关系。
继承关系

类中通常含有以下成员方法

1)构造方法:至少应该包含一个不带参数的、一个带完整参数的构造方法。
2)更改器:可以保证在对象创建之后,更改对象的状态。
3)获取器:可以保证随时获得对象的状态值。
4)toString:可以将对象的状态值转换为字符串。
5)equals:可以实现判断两个对象是否相等的操作。(标准库提供功能,将它与当前对象进行比较,如果两个对象变量同时引用一个对象,返回true)

使用访问控制符的基本原则

  • 类里的绝大部分成员变量都应该使用private修饰,只有一些static修饰的、类似全局变量的成员变量,才可能考虑使用public修饰。除此以外,有些方法只用于辅助实现该类的其他方法,这些方法被称为工具方法,工具方法也应该使用private修饰。
  • 如果某一个类主要用做其他类的父类,该类里包含的大部分方法可能仅希望被其他子类重写,而不想被外界直接调用,则应该使用protected修饰这些方法。
  • 希望暴露出来给其他类自由调用的方法应该使用public修饰。因此,类的构造器通过使用public修饰,从而允许在其他地方创建该类的实例。因为外部类通常都希望被其他类自由使用,所有大部分外部类都使用public修饰。

构造器

1)构造器的重载
当构造器A与构造器B,存在包含情况时,我们可以使用this关键字来调用相应的构造器。

public class Apple
{
    public String name;
    public String color;
    pPublic double weight;
    public Apple() {}
    public Apple(String name,  String color)                     //构造器A
    {
        this.name = name;
        this.color = color;
    }
    public Apple(String name,  String color,  double weight)     //构造器B
    {
        this(name, color);
        this.weight = weight;
    }
}

虽然可以直接将构造器A中的代码直接复制到构造器B中,但我们要尽量避免在软件开发中把相同的代码段书写两次以上。如果某一天我们需要更新构造器A的代码时,构造器B、C中也包含了相同的代码,这就会使得我们修改代码变得更困难。

继承

1)语法格式

public class subClass extends superClass
{
    //类定义
}

Java的子类不能获得父类的构造器。
2)overload和override
重载(overload)和重写(override),重载主要发生在同一个类的多个同名方法之间,重写发生在子类和父类的同名方法之间。

Super()

  • 如果在定义类时没有任何构造方法,系统就会提供一个参数列表为空的默认构造方法,方法体只有一条调用父类无参数构造方法的语句super()。
  • 用于在子类中,调用父类的构造函数。(可传递父类构造函数参数)。

instanceof运算符

1)格式

if( obj instanceof String)          //判断obj对象是否是String类对象

instanceof运算符的前一个操作数通常是一个引用类型变量,后一个操作数通常是一个类,用于判断前面的对象是否是后面的类,或者其子类、实现类的实例。如果是,则返回true。
2)作用
instanceof运算符的作用是:在进行强制类型转换之前,首先判断前一个对象是后一个类的实例,是否可以成功转换,从而保证代码更加健壮。基本等同于C#中的is运算符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值