2.1 面向对象与面向过程
什么是面向过程?
面向过程,其实就是面向着具体的每一个步骤和过程,把每一个步骤和过程完成,然后由这些功能方法相互调用,完成需求。
例如:吃煎饼果子利用面向过程的思想:
- 学习摊煎饼的技术
- 买材料鸡蛋,油,葱等等
- 开始摊
- 吃
- 收拾
什么是面向对象?
面向对象思想就是不断的创建对象,使用对象,指挥对象做事情。(如果有对象,直接用对象,对我们直接提供服务)
例如:吃煎饼果子利用面向对象的思想
- 找会摊煎饼的大妈(创建一个摊煎饼大妈的对象)
- 调用其摊煎饼的技能(功能),传递进去钱参数
- 返回给我们一个煎饼
- 吃
面向对象:着眼点在于找到一个能够帮助解决问题的实体, 然后委托这个实体来解决问题;
面向过程: 着眼点在于问题是怎样一步步的解决的, 然后亲力亲为的去解决这个问题;
Java是一种面向对象的语言:
用Java这门语言, 可以很容易的写出具有面向对象思维方式的代码
用面向对象的编程语言写出的代码, 一定是面向对象的代码? 错!
2.2 类和对象
类:是一组相关的属性和行为的集合(我们班所有的同学都具备相同的属性和行为,比如:姓名,年龄,学习,这样就把所有的学生成为学生类)
对象:是该类事物的具体体现(说某个同学时,他都具备自己特有的属性和行为)
类:学生 对象:具体的张三李四就是对象
类:车 对象:具体的开的奔驰、宝马,就是对象
2.3 类的定义
定义学生类:
定义成员变量和成员方法,其中成员变量和普通变量的区别是,成员变量是定义类的特征,在类内定义,成员变量是有默认值的(整型: 0, 浮点型: 0.0 ,布尔型: false,字符型: ‘\0’ ‘\u000’, 引用数据类型: null)
public class Student {
//特征:表现为属性,属性有默认值,整型: 0,浮点型: 0.0,布尔型: false
//字符型: '\0' '\u000',引用数据类型: null
//成员变量
//姓名
String name;
//年龄
int age;
//行为:表现出的是方法
//成员方法
public void study() {
System.out.println("好好学习,天天向上");
}
public void eat() {
System.out.println("吃饱了才有力气减肥");
}
}
类的使用:
public class StudentTest {
public static void main(String[] args) {
//创建对象
//类名 对象名 = new 类名();
Student s = new Student();
//使用成员变量
System.out.println("姓名:"+s.name);//null
System.out.println("年龄:"+s.age);//0
System.out.println("----------");
//给成员变量赋值
s.name = "孙俪";
s.age = 30;
//再次使用成员变量
System.out.println("姓名:"+s.name);//孙俪
System.out.println("年龄:"+s.age);//30
System.out.println("----------");
//调用成员方法
s.study();
s.eat();
}
}
注意事项:
- 类名是一个标识符, 遵循大驼峰命名法
- 一个java文件中可以写多个类, 但是只有和文件名相同的那个类名可以修饰为public
- 在程序编译的时候, 每一个类都会生成一个.class字节码文件, 而且.class文件的名字和类名相同
- 在程序中, 是先有类, 然后再从这个类中实例化一个对象