1.面向对象概述
(1)对象:事物存在的实体,类抽象出来的一个实例,随处可见的一种事物就是对象,如人,书桌,计算机,高楼大厦等;
(2)类:不能将一个事物描述成一类事物,如一只鸟不能统称为鸟类。但如果要给某一类事物一个统称,需要用到类这个概念。同一事物的统称,实质上就是封装对象属性和行为的载体,包含静态属性和动态属性;
(3)封装:封装是面向对象程序的核心思想。封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码 进行有机的结合,形成“类”,其中数据和函数都是类的成员。将对象的属性和行为封装起来,其载体就是类,类通常对客户隐藏其实现细节,这就是封装的思想。
(4)继承:类与类之间同样具有关系,这种关系被称为关联。当处理一个问题时,可以将一些有用的类 保留下来,在遇到同样的问题时拿出来复用。(子类继承父类)
(5)多态:多态是面向对象的重要特性,简单说:“一个接口,多种实现”,就是同一种事物表现出的 多种形态。将父类对象应用于子类的特征就是多态。
2.类
(1)成员变量
对象的属性也称为成员变量,成员变量可以是任意类型,整个类中均是成员变量作用范围。
![](https://i-blog.csdnimg.cn/blog_migrate/283c581b89b95d91be17f2a937865311.png)
如果想要把private修饰的成员变量对外提供,需要用到getter和setter方法
练习代码
![](https://i-blog.csdnimg.cn/blog_migrate/66f939ab0d12720f5aa43ffd15d81448.png)
(2)成员方法
使用成员方法对应于类对象的行为。一个成员方法可以有参数,这个参数可以是对象,也可以是基本数据类型的变量,同时成员方法有返回值和不返回任何值的选择,如果方法需要返回值,可以在方法体中使用return关键字,使用这个关键字后,方法的执行将被终止。
权限修饰符 返回值类型 方法名(参数类型 参数名){
...
return 返回值;
}
![](https://i-blog.csdnimg.cn/blog_migrate/f48780ae22b4831cb8b7d75cc9b49909.png)
(3)权限修饰符
![](https://i-blog.csdnimg.cn/blog_migrate/76abe2a85ca8df2bbf6e1f1e5028fa7d.jpeg)
(4)局部变量
定义在函数内部的变量称为局部变量,它的作用域仅限于函数内部, 离开该函数后就是无效的,再使用就会报错。
(5)局部变量的有效范围
可以将局部变量的有效范围成为变量的作用域,局部变量的有效范围从该变量的声明开始到该变量的结束为止。
(6)this关键字
this关键字用于表示本类当前的对象,当前对象不是某个new出来的实体对象,而是当前正在编辑的类。this关键字只能在本类中使用。
3.类的构造方法
(1)构造方法概念
构造方法是一个与类同名的方法,对象的创建就是构造方法完成的。每当类实例化一个对象时,类都会自动调用构造方法。
(2)构造方法的特点
构造方法没有返回值 。
构造方法的名称要与本类的名称相同。
![](https://i-blog.csdnimg.cn/blog_migrate/005f928025046e5664706f9cf6aa5f95.png)
4.静态变量和静态方法
1.概念
由static修饰的变量和方法被称为静态变量和静态方法。静态变量与静态方法的作用通常是为了提供共享数据或方法,如数学计算公式等。尽管使用这种方式调用静态成员比较方便,但静态成员同样遵循着public,private和protected修饰符的约束。
2.使用static关键字注意点:
1)在静态方法中不可以使用this关键字
2)在静态方法中不可以直接调用非静态方法
3)局部变量不可以使用static关键字声明
4)主方法必须用static声明
5)只有内部类可以使用static关键字声明
![](https://i-blog.csdnimg.cn/blog_migrate/c489abb885829956bf31e677a58941d1.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0c28fbc484317937670b5989641502ca.png)
练习代码
![](https://i-blog.csdnimg.cn/blog_migrate/5248cd811e88f0a9484894755d7d033f.png)
运行结果
![](https://i-blog.csdnimg.cn/blog_migrate/a30c666141eab6ed1be39cf9ecd68d11.png)
5.类的主方法
1.主方法概论
主方法是类的入口点,定义了程序从何处开始。主方法提供对程序流向的控制,Java编译器通过主方法来执行程序。
2.主方法的特性:
主方法是静态的,所以如要直接在主方法中调用其他方法,则该方法必须也是静态的;
主方法没有返回值;
主方法的形参为数组。其中,args[0]~args[n]分别代表程序的第一个参数到第n个参数,可以使用args.length获取参数的个数。
练习代码
![](https://i-blog.csdnimg.cn/blog_migrate/a9160340d958c5578fc6a49e91bc6cba.png)
运行结果
![](https://i-blog.csdnimg.cn/blog_migrate/8f4ef65664cae61ac49053b7bf91b368.png)
6.练习
people类代码
![](https://i-blog.csdnimg.cn/blog_migrate/386ef286ac46a9f48e245c1413935244.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c4115375a52a1196a76083e126f9b89e.png)
PeopleText类代码
![](https://i-blog.csdnimg.cn/blog_migrate/dd2a34f21dba930e31e6252035b798f3.png)
运行结果
![](https://i-blog.csdnimg.cn/blog_migrate/4f95c0d58e142f14b357164fdc41a529.png)