共计 3958 个字符,预计需要花费 10 分钟才能阅读完成。
Java 面向对象之类和对象
一、面向对象概述
Java 是齐全的面向对象编程(Object Oriented Programming),简称OOP
。
面向对象编程的思维形式更加合乎大家的日常生活,因为咱们的事实世界都是由各种各样的对象组成,大到飞机、火车、楼房,小到一只狗、笔记本电脑、一本书都是实实在在的对象。然而每个对象都有本人的状态和行为,咱们能够通过对象来实现肯定的工作。
例如:咱们乘坐飞机从深圳飞到湘西去游览,咱们能够间接应用飞机的航行能力,而不必管飞机这个对象是如何制作的。间接应用即可。
应用面向对象的形式来形容由对象组成的世界,更加合乎人类的思维形式;
因为软件呈现的目标就是为了:
- 用计算机的语言形容事实世界
- 用计算机解决事实世界的问题
Java 是目前最为风行的面向对象的编程语言(Python 可能不服),领有面向对象的四大特色:
- 封装:暗藏外部实现细节,对外提供可拜访的办法
- 继承:子类主动继承父类中所有的非公有属性和办法
- 多态:同一事物,多种不同的示意状态,例如:重载、重写
- 形象:能够不必管具体的实现,定义对立的形象规定
面向对象编程是 Java 的核心思想,然而对于初学者来说,学习起来还是比拟形象。所以倡议初学者能够配合书籍一起学习,重复观看,从而把握其中精髓。
二、类
2.1 类的概述
类是 Java 应用程序中,必不可少的单位;创立类的关键字是:class
; 其实咱们在之前的学习过程中曾经接触过类,只是没有专门独自的拿出来讲。
例如:
- 以下创立了一个名称叫
Test01
的类 - 在类中定义了一个
main()
办法,也是程序的入口
public class Test01{public static void main(String args[]){
// 创立并且赋值
int score2[] = {100,90,88,85,66};
for(int i = 0;i<score2.length;i++) {System.out.print(score2[i]+"\t");
}
}
}
所以创立类,也没有那么简单。把握其根本语法,而后依据本人的需要进行创立即可。
Java 作为一门高级语言,咱们除了能够创立本人定义的类以外,还内置了许多预约义好的类。
例如:
- Scanner
- Math
- String
2.2 预约义类
所谓预约义类,就是 Java 语言依据理论业务场景,帮咱们预约义好的类。咱们只须要把握如何应用,不须要再去额定创立。
罕用的预约义类:
例如:
- Scanner : 键盘输入
- Math:数学相干类
- String:字符串类
- Date:工夫日期相干类
- List:汇合类
Java 提供的预约义类有点多,好在提供了帮忙文档,咱们能够依据帮忙文档查看:https://www.matools.com/api/java8
前面有章节专门来钻研罕用的预约义类。
2.3 发现类的过程
1、宠物—现实生活中的对象
如何在计算机中形容它?
世界上具体宠物对象,特地多。那么咱们如何用计算机语言来形容这么多宠物对象,如果一个个形容咱们必定是做不到的;所以咱们须要把握其中的法则来对其进行划分。
从事实中形象出类分为三步走:
- 第一步:找出它们的品种
- 第二步:找出它们的属性
- 第三步:找出它们的行为
2、第一步:找出他们的品种
依据以上信息,找出狗的品种;
Java 应用的是 class
关键字来形容类;
// 创立一个名为 Dog 的类
class Dog{}
3、第二步:发现类的特色
咱们能够依据每个对象,抽取出他们雷同的特色(属性);然而任何一个对象都会有多个特色
例如:Dog 狗类的特色有
尽管特色很多,然而理论咱们只寄存咱们所须要的特色(属性):
class Dog {
String name = "旺财"; // 昵称
int health = 100; // 衰弱值
int love = 0; // 亲密度
String strain = "拉布拉多犬"; // 种类
}
4、第三步:发现类的办法
类的办法也能够称为 行为
, 是动静的。每个办法都能够看出是一个独立的性能
和属性一样,咱们寄存的也是咱们所关怀的行为
class Dog {
String name = "旺财"; // 昵称
int health = 100; // 衰弱值
int love = 0; // 亲密度
String strain = "拉布拉多犬"; // 种类
/* 输入狗的信息 */
public void print() {// 输入狗信息的代码}
}
通过以上三个步骤,咱们就能够创立一个残缺的类。以及指定了类中蕴含的属性和办法。
2.4 类的组成
通过以上发现类的过程,咱们能够看到类的根本组成:
// 语法格局:[< 修饰符 >] class < 类名 > {[< 属性申明 >] [< 结构器申明 >] [< 办法申明 >] [{代码块}] }
1、属性
定义属性: 语法
// 语法 [修饰符] 数据类型 属性名称 = [初始值]; // 例如 public String name = "来福"; // 创立了一个属性,并且给初始值
修饰符:
public
: 示意公共的,拜访权限最大的,整个我的项目中都能够拜访private
: 示意公有的,拜访权限最小的,再能在以后类中拜访
数据类型:
- 数据类型能够是 8 种根本数据类型,也能够是援用数据类型
- 属性的初始值取决数据类型。
int 默认值是 0
、String 默认值是 null
属性名称:
- 属性也称为全局变量
- 只须要合乎根本的命名规定和标准即可
2、办法
也称为行为,失常一个办法示意一个具体的性能。例如:跑、吃、睡觉
// 语法: [修饰符] 返回值类型 办法的名称([参数列表]){// 办法体。就是该办法的具体性能} // 案例 public void show(String name){System.out.println("我的名字是:"+name); }
办法组成的四因素:
- 返回值
- 办法名称
- 参数列表
- 办法体
组成办法的四因素,缺一不可。
2.1 返回值
该办法执行结束之后,把值返回给办法的调用者
- 必须定义返回值的具体的类型,如果没有返回值应用 void 润饰
- 如果有具体的返回值,必须在语句块中应用 return 语句
// 没有返回值
//1. 应用 void 润饰
//2. 不必应用 return
//3. 办法的调用者不能应用变量接管内容
public void add(int num1,int num2) {int sum = num1+num2;}
// 有返回值的状况
//1. 固定返回值类型
//2. 办法体前面必须应用 return 关键字返回具体的数字
//3. 办法执行之后的后果,能够应用变量保存起来
public int desc(int num1,int num2) {
int d = num1-num2;
return d;
}
2.2 办法名称
只是一个标识符,合乎命名规定和规
标准:
- 驼峰命名规定;首个单词首字母小写,之后每隔单词首字母大写 getUserByName();
- 见名知意
2.3 参数列表
定义方法的时候,参数是可选的。
- 形参列表:(形式参数), 只是负责定义参数,以及参数的类型和名称。然而该参数每页理论的值
- 实参列表: 办法的调用时候
// 定义方法
// num1,num2 示意连个形参
// 语法: 数据类型 参数名,多个参数之间应用逗号隔开
public int desc(int num1,int num2) {
int d = num1-num2;
return d;
}
// 办法调用
//abc: 变量,接管办法的返回值
//50,20: 具体的实参,实参数据类型,个数,程序必须和形参要统一
int acb = p1.desc(50,20);
2.4 办法体
{}示意办法体,也是办法具体的业务实现
public int desc(int num1,int num2) {
// 具体的业务 依据场景不同。具体 也不同
int d = num1-num2;
return d;
}
3、构造方法
3.1 构造方法特色
它具备与类雷同的名称;
它不含返回值, 也不须要应用 void
关键字润饰
一个类中能够领有多个构造方法
public class Person{public Person(){// 默认无参结构}
public Person(String name){// 定义有参结构}
}
3.2 构造方法作用
依照指定的规定来创建对象, 实现对象的初始化工资;(给所有的属性赋值)
// 留神: 构造方法不能应用 void 润饰,否则就是一般办法。丢失了构造方法的作用
// 构造方法通过 new 关键字 调用。不能通过对象调用 :
new Person(); // 调用 Person 无参结构
new User("zhangsan", "深圳华丽居", "110");// 调用有参数结构
3.3 构造方法留神
- Java 语言中,每个类都至多有一个构造方法;
- 如果类的定义者没有显式的定义任何构造方法,零碎将主动提供一个默认的构造方法:
- Java 类中,一旦类的定义者显式定义了一个或多个构造方法,零碎将不再提供默认的构造方法;
- 结构器的次要作用:利用结构器参数初始化对象的属性。
public Person(String name,int age){
this.name = name;
this.age = age;
}
2.5 类图
形容整个类的信息;
- 用于剖析和设计“类”
- 直观、容易了解
三、对象
1、简介
- 万物皆对象,所有的货色都是一个对象
- 对象是类的具体实现,一个类能够创立任意多个对象
- 每个对象其实都是一个正本,对象与对象之间互不干涉
- 关键字:
new
-
应用:
- 对象名. 属性名 –>student.username
- 对象名. 办法名() —>student.eat();
2、创建对象的语法
new + 构造方法() : 例如: new Dog(); new Person();
非凡的办法:
a. 不须要返回值 b. 办法名和类名统一;
3、类的拜访机制
- 在一个类中的拜访机制:类中的办法能够间接拜访类中的成员变量
- 在不同类中的拜访机制:先创立要拜访类的对象,再用对象拜访类中定义的成员。
4、匿名对象
-
咱们也能够不定义对象的援用,而间接调用这个对象的办法。这样的对象叫做匿名对象,如:
- 如果对一个对象只须要进行一次办法调用,那么就能够应用匿名对象。- 咱们常常将匿名对象作为实参传递给一个函数调用