·将功能封装进对象,强调具备了功能的对象
·java里面有对象用对象,没有对象,那么就创造对象,用对象,之后还要维护各种对象之间的关系
注意
1.面向对象强调 :具备了功能的对象,将功能封装进对象 2.OOP :object-oriented programming面向对象编程
3.面向对象的三大特征:封装、继承、多态
4.类(class)是抽象的,概念性的。对象(Object)是实实在在存在的,“看得见”,“摸得着”
5.对象也叫类的实例(instance)
6.面向对象编程的关键是类的设计
7.类的设计就是,设计类中包含的内容(类的成员)
8.对象的类型是类
9.先设计类,在通过类来创建出一个个的对象
10.通过类来创建对象,也可以说成使用类来实例化一个对象
11.对象跟类的实例化是一个意思
12.类不占内存,对象才占内存
类的成员
1.属性(成员变量、全局变量、Field)
2.方法(成员方法、成员函数、Method)
3.构造器
创建类的格式
[修饰符] class 类名
{
属性
方法
}
类的修饰符:public abstractfinal 缺省
修饰符public:类可以被任意访问
类的正文要用{ }括起来
属性
格式:
[<修饰符>] 类型<属性名> [=初值] ;
注意:类型可以是任何基本类型,如int、boolean或任何类。也可以是引用数据类型
[<修饰符>]:
修饰符public: 该属性可以被本类以外的方法访问。
修饰符private: 该属性只能由本类的方法访问。
修饰符protected:
缺省
成员变量vs局部变量
相同点:
1.类型 名=初始值;
2.都有作用范围 {}
不同点:
1.定义的位置来说:
成员变量:类的内部,方法的外部
局部变量:方法的内部,形参,代码块
2.权限修饰符:
成员变量: public protectied 缺省 private
局部变量:无修饰符,跟所在的方法的修饰符一致
3.都有初始值:
成员变量:可以不显示的指定初始值,系统会分配默认的初始值
byte\short\int\long\→ 0
char→ 空
floatdouble → 0.0
boolean → false
引用类型 → null
局部变量:必须显示的指定初始值,系统不会分配默认的初始值
4.内存中的位置:
成员变量存储在堆中!
局部变量存储在栈中!
总结:变量的分类
按类型分:基本数据类型和引用数据类型
按位置分:局部变量和成员变量
public String name;
private String sex;
protected int age;
//方法
public void eat(){
int i=9;//局部变量
System.out.println("eating");
}
public void walk(){
System.out.println("walking");
}
}
创建对象
使用关键字 new + 构造器
Personp1 = new Person();
System.out.println(p1);
使用对象名.属性
对象.方法的方式来调用属性跟方法
p1.walk();
p1.eat();
p1.age=30;
p1.name="韩超";
p1.sex="男";
System.out.println(p1.age);
System.out.println(p1.sex);
System.out.println(p1.name);
匿名对象
1.我们也可以不定义对象的句柄,而直接调用这个对象的方法。这样的对象叫做匿名对象,如:new Person().shout();
2.如果对一个对象只需要进行一次方法调用,那么就可以使用匿名对象。
3.我们有时会将匿名对象作为实参传递给一个函数调用。
//1new1世界
new Person().eat();
new Person().walk();
Person p2 =new Person();
testNiMing(p2);
//将匿名对象作为实参传递给一个函数调用。
public static void testNiMing(Person person){
person.eat();
}
面向对象的三大特性: 封装、继承、多态