一、面向对象概述
1、对象
现实世界中,随处可见的一种事物就是对象,对象是事物存在的实体,如动物、书、计算器、冰箱等。
2、类
类是封装对象的属性和行为的载体,反过来说具有相同属性和行为的一类实体被称为类。
3、封装
封装是面向对象编程的核心思想,将对象的属性和行为封装起来,而将对象的属性和行为封装起来的载体就是类,类通常对客户隐藏其实现细节,这就是封装的思想。例如,用户使用电脑,只需要使用手指敲击键盘就可以实现一些功能,用户无须知道电脑内部是如何工作的,即使用户可能碰巧知道电脑的工作原理,但在使用电脑时并不完全依赖于电脑工作原理这些细节。
4、继承
类与类之间同样具有关系,如一个百货公司类与销售员类相联系,类之间这种关系被称为关联。
5、多态
多态性允许以统一的风格编写程序,以处理种类繁多的已存在的类以及相关类。该统一风格可以由父类来实现,根据父类统一风格的处理,就可以实例化子类的对象。(继承父类的情况下,子类有自己的类)
二、类
1、成员变量
Java中的对象属性成为成员变量。
2、成员方法
在Java语言中使用成员方法对应于类对象的行为。
权限修饰符 返回值类型 方法名(参数类型 参数名){
...//方法体 return 返回值;
}
3、权限修饰符
Java中的权限修饰符主要包括private、public和protected,这些修饰符控制着对类和类的成员变量以及成员方法的访问。
4、局部变量
局部变量是在方法被执行时创建,在方法执行结束时被销毁。局部变量在使用时必须进行赋值操作或被初始化,否则会出现编译错误。
5、局部变量的有效范围
可以将局部变量的有效范围称为变量的作用域,局部变量的有效范围从该变量的声明开始到该变量的结束为止。
6、this关键字
在这里读者明白了this可以调用成员变量和成员方法,但这并不是Java语言中的最常规调用方式——使用“对象.成员变量”或“对象.成员方法”进行调用(关于使用对象调用成员变量和方法的问题,笔者会在后续章节中进行讲解)
this关键字来代表类对象的引用。
Private void setName(String name){
this.name=name; //将参数值赋予类中的成员变量
}
三、类的构造方法
在类中除了成员方法之外,还存在一种特殊类型的方法,那就是构造方法。构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的。
public book(){
...... //构造方法体
}
四、静态变量、常量和方法
在介绍静态变量、常量和方法之前首先需要介绍static关键字,因为由static修饰的变量、常量和方法被称作静态变量、常量和方法。
五、类的主方法
主方法是类的入口点,它定义了程序从何处开始;主方法提供对程序流向的控制,Java编译器通过主方法来执行程序。
主方法的语法如下:
public static void main(String[] args){
//方法体
}
六、对象
1、对象的创建
对象可以认为是在一类事物中抽象出某一个特例,通过这个特例来处理这类事物出现的问题,在Java语言中通过new操作符来创建对象
Test test=new Test();
Test test=new Test("a");
Test:类名
test:创建Test类的对象
new:创建对象操作符
"a":构造方法的参数
2、访问对象的属性和行为
当用户使用new操作符创建一个对象后,可以使用“对象.类成员”来获取对象的属性和行为。
3、对象的引用
类名 对象引用名称
假如一个类是Book:
Book book;
Book book=new Book ();
4、对象的比较
在Java语言中有两种对象的比较方式,分别为“==”运算符与equals()方法。
package bao;
import java.util.Arrays;
public class Demo1 {
public static void main(String[] args) {
String str=new String("aaa");
String str1=new String("aaa");
String str2=str;
//运用“==”运算符比较str1与str2
System.out.println("“==”运算符比较str1与str2的结果:"+(str1==str2));
//运用“equals()”方法比较str1与str2
System.out.println("“equals()”方法比较str1与str2的结果:"+str1.equals(str2));
}
}
/*输出结果:
“==”运算符比较str1与str2的结果:false
“equals()”方法比较str1与str2的结果:true
*/
“==”:是比较两个对象的地址是否相同
equals():是比较两个对象的内容是否相同
5、对象的销毁
每个对象都有生命周期,当对象的生命周期结束时,分配给该对象的内存地址将会被回收。