目录
类和对象
1.类
类是一类对象的统称,相当于一个模板,是一个公共的产物,类中有属性和方法。
2.对象
对象是类的一个实例,必须具备该类事物的属性和行为
3.定义类
定义类的步骤:1.定义类;
2.类的成员变量;
3.类的成员方法。
class 类名称{
数据类型 变量;
方法;
}
4.创建对象
类名 对象名称 = new 类名();
5.使用对象
对象名称.属性
对象名称.方法
6.类的实例化
(1)new关键字用于创建一个对象的实例。执行过程:为对象分配内存空间,调用对象的构造方法;
(2)使用:来访问对象中的属性和方法;
(3)同一个类可以创建多个实例;
(4)格式一:
类名称 对象名称 = new 类名称;
声明并实例化对象
(5)格式二:
类名称 对象名称 = null;
对象名称 = new 类名称();
先声明对象,然后实例化对象
7.成员函数
(1)
void 函数名(){
函数内容;
}
(2)
void 函数名(类型1 参数1,类型2 参数2...){
函数内容;
}
(3)
返回类型 函数名(类型1 参数1,类型2 参数2...){
函数内容;
return和函数返回类型一致的某个变量式对象;
}
8.参数的传递
形参:用于定义方法的时候使用的参数,用来接收调用者传递的参数。
实参:用于调用时传递给方法的参数。
参数传递:(1)值传递;(2)引用传递。都是实参传给形参。
9.函数重载
如果一个类中有多个具有相同名称但是参数不同与返回值无关的方法,则称为方法重载。
需满足条件: (1)函数参数的个数不同;
(2)函数参数的个数相同,类型不同;
(3)函数参数的个数相同,类型相同,但是在参数列表中出现的顺序不同;
10.构造函数
构造函数也称为构造方法,是一种特殊的函数。
作用:创建新对象时给对象初始化。
特点:函数名与类名相同,没有返回值,不可以写return,可以有多个构造函数(参数列表不同),各个构造函数之间属于方法重载。
11.static关键字
(1)static变量称作静态变量。
静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次被加载时会被初始化。
(2)用“类名.变量名”访问或是“对象名.变量名”
(3)因为只会在类加载的时候执行一次,所以static关键字会用来形成静态代码块以此优化程序性能。
封装
1.概念
将数据和方法包装进类中,加上具体的实现的隐藏(访问修饰符),共同被称作封装,其结果是一个同时带有特征和行为的数据类型。
2.访问修饰符
来规范和确定整个基本变量、函数、类的使用空间。
访问修饰符有:
private:该类或非该类均可以访问;
protected:只有该类可以访问;
public:该类或其子类的成员均可以访问,同一个包中的的类也可以访问;
默认:同一个包中的类均可以访问。
区别:
位置 | private | 默认 | protected | public |
同一个类 | v | v | v | v |
同一个包类 | v | v | v | |
不同包内的子类 | v | v | ||
不同包并且不是子类 | v |
3.属性封装的实现
修改属性的可见性来限制对属性的访问。
4.方法封装的目的
- 隐藏方法实现细节(方法体),向外部提供公开接口(方法头),以供安全调用;
- 简化调用,方便修改维护。
5.包
- 打包的含义:java的包是为了更好地规范代码,防止命名冲突和混乱。当把类组织起来放进一个包内之时,也就给包中的成员赋予了相互访问的权限,就拥有了该包的程序代码。包的访问权限把类聚集在一个包中,为这做法提供了意义和理由。
- package声明包:将相同名称的类放在不同的包下,划分层级区分不同模块。必须在程序中可执行的第一行代码且只能有一句。
6.this关键字
- 三大作用:this调用属性、调用方法、利用this表示当前对象。
- this是自身的一个对象,代表对象本身。
- this的三种用法:(1)直接引用;(2)形参与成员名重名,用this来区分;(3)引用构造函数。
7.super关键字
- 可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类。
- 三种用法:(1)直接引用;(2)子类中的成员变量或方法与父类中的成员变量或方法同名;(3)引用构造函数。
8.this()和super()
- this()是一个指向本对象的指针。
- supe()r是一个关键字。
- super()和this()均放在构造方法内第一行。
- super()从子类中调用父类的构造方法。
- this()在同一类内调用其他方法
- this()和super()都指对象,所以均不可以在static环境中使用,包括:static变量,static方法,static语句块。
继承
1.概念
继承是面向对象最显著的一个特征。继承是从已有类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
2.实现继承的语法
class 子类 extends 父类{}
- 子类又称派生类
- 父类又称父类
- 子类即使不扩充父类,也能维持父类的操作。
- 子类实际上是将父类定义的更加的具体化的一种手段。
- 父类表示的范围更大,子类表示的范围更小
3.继承的限制
- 一个子类只能够继承一个父类,存在单继承局限。java中只允许多层继承,不允许多重继承,java存在单继承局限。
- 在一个子类继承的时候,实际上会继承父类之中的所有操作。
- 默认情况下,子类会找到父类之中的无构造方法。
4.继承的优点
- 继承过来的字段和方法,可以像任何其他字段和方法一样直接使用。
- 在子类中可以声明一个与父类中同名的新字段或静态方法,从而“隐藏”父类中的字段和方法。
- 可以在子类中声明一个在父类中没有的新字段和方法。
- 可以在子类中编写一个父类当中具有相同名的新实例方法,这称为“方法重写”或“方法覆盖”。
- 可以在子类中编写一个调用父类构造方法的子类构造方法,既可以隐式的实现也可以通过使用关键字super实现。