类与对象简单介绍
类与对象简单介绍
- 什么是类与对象?
- 创建一个类和创建一个对象的语法。
- 类与对象中重要的两种关系(继承、接口)。
- 简单使用类与对象的基础知识来实现两个小程序(ui登录界面,画图板)
===========================================================
一、什么是类与对象?
1、类与对象与生活实际:
在我们的日常生活中,其实有很多类与对象的实例。例如,一个具体的学生(中南大学的某一个学生)就可以是一个具体的对象,而学生(所有学生的象征性名词)就是指的一个类。
那么关于类与对象就可以有个这样的定义。类就是这一个类所有对象的蓝图或者原型,而对象就是这个类的一个具体的实例。
再回到学生这个例子来,想想如果我们想要描述这个类或者说这个类的一个具体的实例的话,我们应该如何去描述呢?答案是,我们可以从特征和功能两个大的方面来描述一个类或者一个对象。
例如,大学生就可以从特征方面来描述这个学生的姓名、学号、身高、体重、成绩等等。也可以从功能方面来描述这个学生的学习、运动、做人等等。因此在java中也有类似这样的两个方面来描述一个类或者这个类的对象,这两个方面就是属性和方法。其中属性对应实际生活中的特征,方法对应功能。
二、创建一个类和创建一个对象的基本语法。
1、创建一个类的基本语法:
Public class 类名{
类里面的方法和属性
}
其中花括号里面的是类里面的方法和属性,而创建相应类的方法和属性也有特定的语法如下:
2、创建一个方法:
访问权限(public/private/protected) 方法类型 方法名(传递的参数列表){
方法体
}
3、创建一个属性:
访问权限 属性类型 属性名(这里可以初始化也可以不初始化,要根据这个类具体的类型)
在创建过程中呢有一个开始没有提到的概念就是访问权限。访问权限顾名思义就是访问的权限,而访问指的是访问者去访问被访问者,我们说的被访问者就是访问权限后面的方法或者属性。当一个类的方法和属性被加以不同的访问权限的时候,能访问它的访问者也会因为访问权限的问题发生不同的变化。那么接下来就讲java中的几个常见的访问权限。
Public:
如果一个类的属性或方法前面有public关键词就带表他的访问权限是公共的,也就是说这个类本身和与这个类同在一个java项目下的所有包都可以通过创建对象然后用“.”成员运算符来直接访问这个类所对应的对象的属性和方法。
Private:
如果一个类的属性或方法前面有public关键词就带表他的访问权限是私有的,也就是说除了这个类在类定义时可以自己用自己的属性,其他情况统统都不能访问这个类的方法或者属性。
Protected:
如果一个类的属性或方法前面有public关键词就带表他的访问权限是保护的。保护权限也叫子权限,顾名思义,只有这个类的子类可以访问它的属性和方法(子类的概念后面会提到)。其它权限方面和private一样。
缺省(无关键词):
如果一个类的属性或方法前面没有关键词就带表他的访问权限是缺省的。缺省不代表没有访问权限的限制,而是带表它的访问权限没有明确表达出来而已。缺省的访问权限一般是与这个类在同一个java项目的同一个包下的其他文件可以访问这个类的属性和方法,所以一般把缺省权限叫做包权限。
4、创建一个对象的基本语法:
类名 对象名 = new 类名();
后面在继承中还会讲到一种特殊的创建方法
三、类与对象中重要的两种关系(继承、接口)。
继承:
1、继承的含义:
继承是指创建一个新的类,但是这个类建立在一个已有的类以上,含有已有类的所有属性和方法。这个新创建的类就叫子类,这个已有类就叫父类,这种关系就叫继承关系。
2、创建一个子类的基本语法:
Public class 子类名 extends 父类名{
类里面的内容
}
3、定义子类里面内容时需注意的点:
因为子类是从父类那里继承了所有的属性和方法,所以对于父类已有的属性和方法,在子类中不需要再写一遍,这样大大节省了代码的空间。但如果想要在子类中增加属性方法或者要改写方法也是可以的,增加属性方法就像之前所说的属性方法的创建方式一样正常创建就行了,但改写父类的方法就必须重新复制父类除其方法体以外的所有东西,然后只能改写方法体内的内容。
4、自动转型与强制转型:
前面有提到创建对象还有另外的语法,那么接下来就说一下这几个语法。
语法1:
父类名 对象名 = new 子类名();
这种叫做自动转型,也就是创建的对象会自动从子类转型到父类,那么这个对象会抹去子类中新创建的属性而保留了子类中新创建与重写的方法。
语法2:
子类名 对象名 = (子类名)父类名;
这种语法叫做强制转换,即把父类强制转换为子类。
那么有人会问了,这个强制转换和自动转型有什么用呢?
试想如果在一个类中的一个方法的参数列表是面有一个参数是一个自定义的类的类型,那么如果这个自定义的类里面有很多子类,你每往这个方法传一种自定义类型的参数时就得新定义一个基本上重复的方法。但是如果有了自动转型就不同了,你直接在方法体里面定义一个最基本的父类,然后当你往方法里面传的参数是任何一个子类类型的时候,系统就会帮你自动转型为父类,这样就不需要重复定义多个方法了。
接口:
1、接口的含义:
正如现实生活中的接口一样,接口是提供一定的标准来帮助人们执行某些特定的事情。如果没有借口,就拿我们的电脑USB接口来说,不同的电脑生产商和鼠标键盘生产商就会头大了,因为他们不知道对方生产出来的鼠标键盘或者电脑接口会是多大的,那这样就会导致很多低效率问题。所以人们就发明了接口这个东西,大家都按照这个标准来生产,就不会出现乱七八糟的产品了。而java中的接口正是如此。
2、创建的基本语法:
Public interface 接口名{
Public static final 属性名 = (初始化值);
Public abstract 方法类型 方法名();
}
需要特别注意的点是,创建一个接口类,第一,必须要初始化其属性;第二其方法为抽象方法不可写方法体,连花括号都不能打;第三public static final 和 public abstract都可以省去,因为缺省值就是这两个。
3、接口的实现的基本语法:
Public 子类名 implements 接口名{
①相比接口新加的属性和方法
②所有接口方法的重写(必须重写)
}