JAVA基础知识总结:七

时间:2023-03-09 19:05:39
JAVA基础知识总结:七

一、面向对象编程
1.什么是面向对象?
万物皆对象

案例一:我想吃大盘鸡
面向过程 面向对象
1.我自己去买一只鸡 1.委托一个会砍价的人去帮忙买鸡
2.我自己宰鸡 2.委托一个胆大的人宰鸡
3.我自己准备菜 3.委托一个厨师帮忙择菜
4.我自己做菜 4.委托一个厨师帮忙做菜
5.我自己吃 5.我自己吃

案例二:小明是一个电脑小白,想要配一台电脑,买完零件后需要搬到家里,组装起来开始玩游戏
面向过程 面向对象
1.小明补充电脑知识 1.委托一个懂电脑的朋友帮忙去买零件
2.小明去买零件 2,。委托一个快递小哥将零件搬到家里
3.小明将零件搬到家里 3.委托一个会组装电脑的人帮忙将电脑组装起来
4.小明组装电脑 4.小明开始玩游戏
5.小明开始玩游戏

面向过程和面向对象的区别:
面向过程:一种看待问题的思维方式,在解决问题的时候,着眼于问题是怎样一步一步解决的,然后亲力亲为的去解决每个步骤中遇到的问题
面向对象:一种看待问题的思维方式,着眼于找到一个具有特殊功能的具体的个体,然后委托这个个体去帮忙做某件事情,这个个体就被称为对象

区别总结:
a.都是一种看待问题的思维方式
b.面向过程着眼于所有的问题亲力亲为解决
c.面向对象着眼于找到一个具有特殊功能的对象,然后委托这个对象去帮忙做某件事情

Java语言是一门纯粹的面向对象的程序设计语言,类和对象是面向对象编程的核心

二、类和对象

1.类和对象的概念
类:一个具有特殊功能的实体的集合(群体)
对象:在一个类中,一个具有特殊功能的实体,能够帮忙解决特定的问题,对象也被称为实例

二者之间的关系:类用于描述某一类对象的共同特征,而对象则是类的具体存在(包含关系)

类 对象
人 张三,李四,杨阳,凌桃根。。。
快递 圆通、申通、顺丰、汇通。。。
superHero 蝙蝠侠,奥特曼,蜘蛛侠,美国队长。。。。。。。。

帮助理解:我们可以将类当做是一种自定义的数据类型,可以使用类来进行定义变量,这种类型的变量统称为引用型变量,也就是说,类是引用数据类型

2.声明一个类
语法:访问权限修饰符 class 类名 {
//类体

说明:a.访问权限修饰符:只能是public(可以被省略)
b.类名只要是一个合法的标识符即可,要求:类名首字母必须大写,遵循驼峰命名法
c.类名尽量使用单个或者多个有意义的单词连接而成

注意:a.一个Java文件中可以同时存在多个类,如果有多个类的话,编译之后会生成多个class文件

b。一个Java文件中只能出现一个由public修饰的类,这个类的类名必须和Java源文件的名称保持一致
c.如果一个Java文件中只有一个类的话,并且这个类不使用public修饰,这时类名和Java文件名可以不一样

3.类中成员变量和方法的定义
1>成员变量
a.成员变量也被称为属性
b.成员变量其实就是全局变量
c.分为静态变量和非静态变量
d.在静态方法中只能访问静态变量,在非静态方法中可以访问静态变量和非静态变量

2>类中方法的定义
a.分为静态方法和非静态方法
b.在静态方法中只能调用静态方法,在非静态方法中可以调用静态方法和非静态方法


成员变量------类具有的特征,举例:人----身高,性别,三围,姓名。。。。
成员方法------类具有的行为,举例:人----吃喝玩乐。。。。

4.对象的创建以及内存分析
对象的创建也称为实例化对象
语法:类名 标识符 = new 类名();

Person xiaoming = new Person();
说明:xiaoming这个变量是一个引用型变量,存放于栈空间中,实际的Person对象存放于堆空间中
所有new出来的对象全部存放于堆空间中,对应的对象的引用存放于栈空间中

5.类中成员变量和方法的访问
总结:a.静态成员变量和静态方法是属于类的,使用 类名. 的方式访问
b.非静态成员变量和非静态方法是属于对象的,使用 对象. 的方式访问
c.开辟空间的时机是不同的

6.方法重载
在同一个类中,如果满足以下的条件时,我们就称为这几个方法之间彼此重载
a.方法名相同
b.参数不同(数量不同,类型不同)
c.跟返回值类型没有关系

7.构造方法
构造方法也叫作构造器,是当实例化一个对象(创建一个对象)的时候,第一个被调用的方法
语法:访问权限修饰符 类名() {

}
普通方法:
访问权限修饰符 其他的修饰符 返回值类型 函数名(参数列表) {

}

注意:a.构造方法是在实例化对象的过程中自动调用的
b.系统会默认为我们提供一个无参的构造方法

构造方法和普通方法的区别
a.构造方法没有返回值
b。构造方法的方法名必须和类名保持一致

使用构造方法的过程中容易出现的问题;。
a.如果没有写有参的构造方法,系统会为我们提供一个默认的无参的构造方法
b。如果手动写了有参的构造方法之后,系统将不再提供无参的构造方法,如果需要使用,则需要手动加上(要求:一般情况下,将无参的构造方法加上,哪怕方法里面什么都不写)