面向对象:
我们在具体的实现一个事物的时候,都需要一步一步的去实现和操作,而我们在实现和操作具体的某一步骤后,所有的步骤再进行相互协调和运作,来完成我们的需求。在实行具体的每一个步骤和过程时就是面向过程的最直接体现。
面向对象的思想:
在进行一些简单的需求时我们会一步一步的去操作,而且效率还挺高。
但是随着需求的增加,功能也相应的增多,这时去实现每一个步骤就非常的麻烦,所以就想把这些步骤和功能进行封装,封装时根据相同或者相似的功能进行封装。
这样在我们使用的时候就可以按照找相同的类就可以进行使用,这就是面向对象的思想。
面向对象的思想特点:
1.就是将复杂的问题简单化;
2.更加符合我们的思想;
3.我们由执行者变成指挥者;
4.面向对象是基于面向过程来讲的;
面向对象的特征:
封装(encapsulation)
继承(inheritance)
多态(polymorphism)
类:
类定义了对象的本质,在类中定义了数据和操作这些数据的方法。类中的数据称为成员变量(或属性、数据、域等);成员变量有很多修饰符,用来控制对成员变量的访问。操作数据的方法称为类的成员方法,成员方法前面有很多修饰符,用来控制成员方法的使用。
1.类声明:
格式:
[<修饰符>] class <类名> [extends <父类>] [implements<接口>]
2.类主题:
<类声明> {
<成员变量的声明>
<成员方法的声明及实现>
}
3.成员变量:
[变量修饰符]<变量类型><变量名>
在一个类中成员变量必须是唯一的,但允许成员变量的名字与 类中的成员方法同名,不同类之间也允许出现同名的成员变量。
类中的成员变量和方法中声明的局部变量的作用域不同,前者作用域是整个类,后者为方法内部。(即类中方法外)
static说明的变量是一个静态变量,也称类变量。无static说明的变量是实例变量。
用final修饰的成员变量被视为常量,常量在初始化后不能再被修改。
给成员变量赋值的两种方式:
a:setXxx()方法
b:构造方法
4.成员方法:
[方法修饰符]<方法返回值类型><方法名>([<参数列表>]){
方法体
}
成员方法修饰符主要有 public 、private 、protect 、final、 static 、abstract 、和synchronized。
public:可被所有类访问,
private:只能被本类访问,修饰类的成员变量和成员方法。
protect:允许被相同包中的类访问;
final:用于修饰最终方法,被final修饰的成员方法不允许被子类重载;
static:用来修饰类方法(或静态方法),与类变量相似,
this解决局部变量隐藏成员方法
this的使用:
this是一个关键字,(其关键字的特点是对当前类的对象引用)可以出现在实例方法和构造方法,不能出现在有static修饰的类方法(或静态方法)中。
this代表实例对象自身,可以通过this来访问实例对象的成员变量和调用成员方法。
访问权限控制符:
1. public
public访问权限具有开放性,可以用来修饰类,类与接口的成员(包括成员变量 成员方法),修饰为public的类可以被其他任何类及成员方法访问和引用。(访问是公有的,用于当前工程的任意位置访问)
2. protected
可以用来修饰类的成员变量和成员方法。可以被本类、本包中的其他类和其他包中的子类访问,
3. 默认
默认权限也被称为包权限,具有默认权限的类、接口、成员变量、成员方法,只能被本类和同一个包中的其他类、接口及成员方法使用。
4. private
私有访问权限控制符。用来声明类的私有成员,用private修饰的成员变量 或方法只能被该类自身所访问和修改,而不能被任何其他类(包括该类的子类)获取和引用。
常见应用为:
1.把成员变量用private修饰;
2.提供对应的getxxx()和setxxx()方法
java语言访问权限控制符
| 本类 | 本包 | 不同包中的子类 | 不同包中的所有类 |
private | ✔ | | | |
默认 | ✔ | ✔ | | |
protected | ✔ | ✔ | ✔ | |
public | ✔ | ✔ | ✔ | ✔ |
非访问权限控制符:
static:
用来修饰类的成员变量或成员方法,分别称为类变量(或静态变量)和类方法(或静态方法)。
static注意事项:
1.在静态方法中是没有this关键字的:
静态是随着类的加载而加载,this是随着对象的创建而存在。(静态比对象先存在)
2.静态方法只能访问静态的成员变量和静态的成员方法。
类变量使用特点:
(1).类变量可以访问可以通过类名直接访问,而不需要创建对象。
(2).任何一个对象对类变量的修改,都是在同一内存单元完成的。而且每个对象对类变量的修改都会影响其他实例对象。
类方法的使用特点:
(1).类方法可以通过类名直接调用,而不需要创建实例对象。
(2).类方法属于整个类,被调用时可能还没有创建任何对象实例,因此类方法内只能访问类变量,而不能直接访问实例变量和实例方法。
(3).类方法中不能使用this关键字,因为静态方法不属于任何一个实例。
final
- 修饰变量: 只能进行一次赋值,且不能发生改变;
- 修饰属性:必须要赋值初始值,且不能再发生改变;
- 修饰方法: 被修饰的方法不能被子类重写(覆盖);
- 修饰类: 被修饰的类不能被继承;
static
- 静态元素在类加载时即被初始化,创建的很早。创建时只有类,还没有对象;
- 静态元素存储在静态元素区中,每一个类有一个单独的自己的区域,与其他的类不冲突;
- 静态元素区不能被GC管理,可以简单的认为静态元素常驻内存;
- 静态元素只加载一次(只存在一份)。全部类对象及类本身共;
- 静态元素与对象没有关系,可以通过类直接访问;