面向对象和面向过程的思想对比:
面向过程编程(Procedure Oriented Programming)以过程为中心的编程思想,通过自己实现每一步功能;
面向对象编程(Object Oriented Programming )以对象为中心的编程思想,通过指挥对象实现具体功能
对象:客观存在的事物
1、类和对象
类是现实生活中一类具有共同属性和行为的事物的抽象,对事物/对象的一种描述。
对象是某个描述具象化的个体。
类的组成:属性(特征)+ 行为(能做的事情)
属性:在代码中通过成员变量来体现(类中方法外的变量)
行为:在代码中通过成员方法来体现(无static关键字)
2、类的定义
一个类就是一种类型,eg:Student 和 int 都是一种类型;
不一样的是,前者是引用数据类型,后者是基本数据类型。
3、对象的创建和使用
创建对象的格式:
类名 对象名 = new 类名();
Student s = new Student();
调用成员变量的格式:
对象名.变量名;
s.name;
调用成员方法的格式:
对象名.方法名();
s.study();
4、对象内存图
- 单个对象内存图
2.两个引用指向不同对象内存图
3.两个引用指向同一个对象内存图
*当堆内存中,对象或数组产生的地址,不能被找到时就变成了内存垃圾,java垃圾回收器自动删除。
5、成员变量和局部变量
6、封装(面向对象三大特性:封装、继承、多态)
1.private关键字
访问权限修饰符,可以用来修饰成员变量和成员方法,只能在本类当中进行访问,安全并提高复用性。
只能通过set方法和get方法访问,set/get方法中可以设置条件。
set方法:public void setName(String name){ } 有参无返回值;
get方法:public String getName(){ } 无参有返回值。
2.this关键字
this:代表所在类的对象引用;
this.把局部变量变成成员变量;
方法(this关键字)被哪个对象调用,方法中的this就代表哪个对象;
如果局部变量和成员变量重名,java使用的是就近原则。
封装思想:
隐藏实现细节,仅对外暴露公告的访问方式。
private仅仅是封装的其中一种体现:
私有成员变量,提供set和get方法;
将属性抽取到类当中,是对数据的一种封装;
将代码抽取到方法中,是对代码的一种封装。
7、构造方法
- 构造方法概述:
构造、创造对象的时候所调用的方法
- 格式
- 方法名和类名相同,大小写相同
- 没有返回值,没有void
- 没有具体的返回值
- 无参public 类名(){ }
- 带参public student(String name,int age){this.name=name;this.age=age}
- 创建对象的时候调用,每创建一次对象,就会执行一次构造方法,不能手动调用。
- 构造方法作用
- 创建对象
- 给对象的数据(属性)进行初始化
- 调用无参构造时,会为成员变量默认初始化
- 调用有参构造时,先默认初始化再赋值
调用:new 类名( ); student s =new student( );
- 注意事项:
- 如果一个类中没有构造方法,系统会默认提供一个无参构造方法
- 如果手动编写了带参构造方法,系统不会再提供默认的无参构造方法
- 编写时,无参和带参构造方法同时编写
标准类的制作
作用:封装数据
快速完成:Alt+Insert
注意:show方法不是标准的java类中必备成员