技术教程:类和对象,构造方法,类的继承。

技术教程:类和对象,构造方法,类的继承。


类和对象的关系。


类(class)是对一类对象进行抽象,得到共同的属性与行为。对象(object)是类的一个具体的实例。不妨将“类”理解成“一类”的类,而对象则是一个具体的实在的事物,比如清北复交是都是大学,那么我们就可以建立一个University类,类中包含了大学都具有的信息,比如校名、位置等等,也包含了大学可能会有的活动,比如取名字和迁校等等,这里面的信息就是类的属性/特征,活动就是类的行为/方法。

在java中,类的构造方法为:

public class 类名 {
    //属性
    public 数据类型 属性名;
    protected 数据类型 属性名;
    private 数据类型 属性名;

    //方法
    public 返回值类型 方法名(){};
    protected 返回值类型 方法名(){};
    private 返回值类型 方法名(){};
}


需要注意的是,java中,以类为组织单元,类名与文件名要一致。


根据类的构造方法,我们可以实现上述对University类的定义

public class University{
    private String name;
    private String location;
    
    public String getName(){return name;}
    public String getLocation(){return location;}
    public void setName(String n){name=n;}
    public void setName(String n){name=n;}

}

定义
定义了之后则要创建一个类的对象,对象的创建实际上是通过调用构造函数实现的,而在类的定义中我们并没有定义构造函数,却依然可以创建对象,是因为每一个类都会有一个默认的不含的构造函数,当类内没有定义构造函数时,它就会起作用,当类内定义了构造函数时,则只会调用定义的构造函数,构造函数可以重载,但是默认的构造函数不能与定义的构造函数发生重载,所以当定义了含参构造函数后,要想调用无参构造函数,只能再定义一个无参构造函数。创建对象:

类名 对象名=new 类名();

University PekingUniversity=new University();

调用类的属性/方法:
对象名.属性//如果属性private,则需要通过方法来访问
对象名.方法名()

如:

PekingUniversity.setName("PekingUniversity");

类的继承:
类的继承是类的细化、特殊化的过程。父类和子类的关系可以理解为生物中界门纲目科属种间的关系,可以理解为地理中大洲和国家之间的关系,还可以理解为学生和大学生、高中生之间的关系,总之这是一种包含的关系,父类包含了子类。基于这样的理解,子类会继承父类的所有特征和所有方法(构造函数除外)。这样就会引出一些问题:
1、如果在子类中出现父类同名的特称or方法,如何区分?答:super.以表示父类,this.以表示本类内参数。
2、如果在子类重写父类里定义的方法,则在调用时会调用哪一个方法呢?答:子类。
3、子类的构造函数与父类的构造函数有什么关系呢?答:子类的构造函数一定会调用父类的构造函数而不是继承。
4、子类和父类的自定义数据类型可以实现什么呢?强制转型与自动转型。子类转父类实际上是实现了代码的复用,扩大了代码的适用范围,而父类转子类则是提高了代码的可读性。

在类的继承过程中,要用到关键字extends,注意在Java中只能单继承(而接口则可以多继承)
继承的实现为:

public class 子类名/*派生类*/ extends 父类名/*超类、基类*/ {
    //继承中,public\protected\default\private\的权限依次降低。
}

延续上面的例子

public 985University extends University{
    private String title;
    public String getTitle(){return title;}
    public void setTitle(String t){title=t;}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值