前言:完成上一节面向对象和面向过程的区别,才可继续往下进行,详细请看目录,本文完全针对初学者学习参考,各位大佬如果发现我的博文哪里有问题请尽快指正,我会非常感谢
本文简介
类与对象的概念
什么是类?
类在现实生活中其实是看不见摸不到的,是一个抽象的概念,是一个抽象的结果,就这样说大家可能不是太懂,我来举个栗子?
举个栗子?
举?之前我们先用类组几个词语
比如:人类,水果类,球类,动物类,明星类,鞋类,衣服类等等
没错,上面的词语其实就是一个类的范围
类本质上是现实世界当中某些事物具有共同特征,将这些共同特征提取出来形成的概念就是一个“类”,“类”就是一个模板
什么是对象?
那什么是对象呢,对象就是实际存在的个体,就这样说大家肯定还是不太懂,我还是来举个栗子?
举个栗子?
水果类中有香蕉,苹果,西瓜,榴莲等等,并且香蕉,苹果,西瓜等都有能被食用这个特征,这就是对象
明星类中有周董,张韶涵等等吧,我知道的也不是太多,那他们都有身高,都有体重这个特征,这就是对象
大家应该大概能明白什么是对象什么是类了吧
总结
类就是对象特征的一个总结,在java语言中,要想得到一个“对象”,必须先定义“类”,"对象"是通过“类”这个模板创造出来的。
类就是一个模板:类中描述的就是所有对象的 “共同特征信息”
对象就是通过类创造出的个体
如果还是不明白看下面的图
图文解释
这张图中表示的有
对象:实际存在的个体
实例:对象还有另外一个名字叫做实例。
实例化:通过类这个模板创建对象的过程,叫做实例化
抽象:多个对象共有的共同特征,进行思考总结抽取共同特征的过程
我们前面提到了共同特征,那共同特征包括什么呢?
举个栗子?
?:
周董对象:
名字:周董
身高:170cm(假设)
唱歌(专业)
学习
陈赤赤对象:
名字:陈赤赤
身高:180cm(假设)
唱歌(非专业)
学习
他们的共同特征包括什么?
1.名字,身高都属于名词(状态特征)————>以后对应类中的属性(以后会说到)
2.唱歌,学习都属于动词(动作特征)————>以后对应类中的方法(以后会说到)
这里需要提一嘴
类 = 属性 + 方法
属性来源于:状态
方法来源于:动作
?中的?
//一个类等于属性加方法
public class 明星类{
//属性-->状态,多见于名词
名字属性;
身高属性;
//方法-->动作,多见于动词
打篮球方法();
学习的方法();
}
说了这么多,大家应该明白了什么是类,什么是对象
实在不明白的继续往后看,也可以评论区或者私信问我
类的定义与对象的创建和使用
类的定义
如何定义一个类,语法格式是什么?
//这是语法格式
[修饰符列表] class 类名{
//类体=属性+方法
//属性在代码上以“变量”的形式存在(描述状态)
//方法在代码上以“方法”的形式存在(描述动作 / 行为)
}
这里要解释一下属性为什么要以“变量”形式存在
首先我们还是来举个栗子?
?:
假设我现在要描述陈赤赤:
陈赤赤的属性有:
年龄:36
姓名:“陈赤赤”
性别:‘男’(true男/false女)
住址:“福建省鼓楼区”
这些都称为自变量,自变量就是数据,那我们的属性是以数据形式存在,而数据又要用变量存起来,所以属性是以变量的形式存在的
总结:因为属性对应的是“数据”,数据在程序中只能放到变量中,所以属性即变量
扩展:变量的分类;
变量根据出现位置进行划分:
方法体当中声明的变量:局部变量
方法体外声明的变量:成员变量;(这里的成员变量就是“属性”)
练习题:
观察学生对象1和学生对象2的共同特征,然后再利用java语言将该“学生类”表述/表达出来(这里之表达属性,不表达方法)
/*
观察学生对象的共同特征(只观察属性)
共同特征:
学号:
姓名:
年龄:
性别:
住址:
注意:属性是成员变量
定义Student类,编写成员变量作为属性
*/
public class Student//这个是类名{
//属性
//学号(成员变量)
int ID;
//姓名
String name;
//年龄
int age;
//性别
boolean sex;
//住址
String address;
}
/*变量有一个特点,必须先声明,在赋值,才能访问
那为啥成员变量可以不手动复制*/
现在我们的类相当于已经创建完成了,下面进行对象的建立
对象的建立和使用
创建对象的语法
new 类名(); //new是一个运算符,专门负责对象的创建
创建对象的?
new stu(); //这就创建了一个Student对象
创建完对象之后要访问的话就是在前面加个 类型和变量名
类型 变量名 = new stu();
访问对象的?
//这里对于数据类型有个拓展,请往下看
Student s = new stu(); //Student类创建出来的一个stu对象
//注意这里的Student要与类名一直,也就是class后面的那个名字,这里类名也是类型名
注意:这里就已经用到了前面提到的只是,先有类再创建对象,而这里的由类到创建对象就叫做实例化,倒过来就是抽象
扩展:
数据类型有两种:
基本数据类型:byte short int long float double boolean char
引用数据类型:string Students
java中所有的"类"都属于引用数据类型