1.面向对象与面向过程
面向过程:是一种看待问题,解决问题的思维方式。着眼点在于问题是怎么样一步一步解决的,然后亲力亲为的去解决问题。
面向对象:是一种看待问题,解决问题的思维方式。着眼点在于找到一个能够帮助自己解决问题的实体,然后委托这个实体去帮忙解决问题。
2.使用面向对象的编程语言写出来的代码,不一定是面向对象的代码。
3.面向对象的案例:
<1>面向过程:①打开冰箱门 ,谁->我
②把冰棍放进去 谁->我
③关上冰箱门 谁->我
<2>面次对象:
①打开冰箱门 ,谁->冰箱
②把冰棍放进去 谁->冰棍
③关上冰箱门 谁->冰箱
4.类和对象
对象:具有指定的功能,可以帮助解决问题的实体。
类:由若干个具有相同的属性和功能的对象组成的集合。
关系:类是对象的集合,对象是类的一个个体。
5.类的设计
在设计程序的时候,应该先写类,再从这个类中找到实体,实例化对象。
6.对象的实例化
实例化的过程,其实就是从一个类中找到一个个体。
Person xiaobai = new Person();
7.基本的成员访问
访问类中的成员(属性和方法)
//实例化一个Person 对象
Person xiaobai = new Person();
//访问对象的属性
xiaobai.name = "小白";
xiaobai.age = "23";
System.out.println(xiaobai.name);
System.out.println(xiaobai.age);
//访问对象的方法
xiaobai.eat();
xiaobai.sleep();
8.静态与非静态
使用关键字static修饰的属性\方法,叫做静态属性\方法,
没有使用关键字static修饰的属性,方法叫做成员属性,成员方法。
静态的属性,static int num =10; 没有在堆上开辟空间,随着类第一次被加载到内存中的时候开辟空间,使用对象其实可以访问静态的属性,但是无论用到哪一个对象进行属性访问,最终访问到的,其实都是同一个变量。
静态与非静态的区别:
属性:静态属性是属于类的,需要通过类来访问;非静态属性是属于对象的,需要通过对象来访问。
方法:静态方法需要用类来调用,非静态方法需要用对象来调用。
而且在静态方法中,只能访问到当前类中的静态成员(属性,方法)
在非静态方法中,可以直接访问到当前类中的非静态成员(属性,方法),也可以直接访问静态成员。
9.this 关键字
在一个类中的非静态方法中(实例方法)中,使用this代表当前对象,因为实例方法需要使用对象调用,哪个对象调用这个方法,this就是谁。
10.构造方法
构造方法与普通方法的区别:
<1>语法不同:
①构造方法的名字必须与当前类名保持一致。
②构造方法不能使用其他的修饰符,例如:static
③构造方法没有返回值,这里的没有返回值,并不是说返回值的类型是void,而是返回值的类型都不能写。
<2>
执行的时机不同:
普通方法,可以随时调用。
构造方法,在实例化对象的时候调用执行的。
构造方法的使用场景
先了解什么叫对象的生命周期:从内存中的空间开辟开始,笼统的可以认为从构造方法开始,到方法解析结束,这个过程,称为对象的生命周期。
使用构造方法,一般情况下,是为了在实例化一个对象的同时,给这个对象的某一些属性进行初始化的赋值操作。
⭐构造方法的自动提供
如果一个类中,没有写构造方法,此时这个类会自动的包含一个public权限的无参构造方法,使得可以实例化这个类的对象。
如果一个类中,写了构造方法了。此时这个类将不再包含任何自动生成的构造方法。