面向对象(上)
把一个整体封装成一个对象些方法时调用
类:
具有某一些特征的事物;
对象:
这一类事物的一个具体存在;
成员变量(属性,静态属性):
类里面一个属性(标志);
成员方法(方法,动态属性):
类里面的一个方法;
局部变量:
方法里的一个变量;
特点:
封装:
把一类事物封装成一个类;
继承:
父类的方法属性子类继承;
多态:
同样的事物具有不同的表现形式;
作用范围:
整个类;
类和类之间的关系:
关联关系:
类与类之间的连结,关联关系使一个类知道另外一个类的属性和方法;
通常含有“知道”,“了解”的含义。关联可以是双向的,也可以是单向的
*继承关系(extends):
子类继承父类;
teacher 继承 person;
例:老师是一种人;
聚合关系:
聚集:
必须有但不重要;
学生--->班级;
组合:
必须有且很重要;
头------>人;
*实现关系(implements):
定义接口;
由其他类实现;
类的封装:
把成员变量定义成私有的,提供一个公共的方法用来操作变量的值(get,set方法);
封装:
把一个过程定义成一个方法;
创建对象
类名 变量名 = new 类名();
构造方法:
用来构造一个对象的方法;
·public a(){
}
1,构造方法没有返回值,不能写void;
2,构造方法名与类名必须一模一样
3,定义一个类的时候,如果没有写任意的一个构造方法,则默认生成一个空参的构造方法;
4,当一个类中含有任意一个构造方法时,空参的构造方法会消失;
5,如果要调用空参的构造方法需要重现写出来;
构造方法的重载:
方法名相同参数列表不同;
this关键字:
当前对象的引用;
大多数情况是用来解决闯入的参数和成员变量重名的情况;
可以从通过this关键字来调用当前类中的其他的构造方法;
写法:
this();
super关键字:
指向父类对象的引用;
写法:
调用方法;
super.方法名();
调用构造方法:
super();
static关键字;
表示静态的,可以修饰变量(成员变量,方法,类);
修饰变量:
static修饰的变量不在栈也不在堆而是在数据区;
不管实例化多少个对象,所有对象都共享一份;
*一般用类名调用;
不需要实例化;
修饰方法:
用途:做一些工具类的使用;
*一般用类名调用;
静态的方法(static)不能访问非静态的的成员;
单例模式:
饿汉式:
类中实例化对象;
public class Car{
private static Car car = new Car();
public static Car getCar(){
return car
}
}
懒汉式:
什么时候用 什么时候实例化;
public class Car{
private static Car car;
public static Car getCar(){
if(car == null){
car = new Car()
}
return car
}
}