现实世界中的每一个事物都有其属性和行为。
学生
姓名,年龄,性别 // 属性:该事物的描述信息
学习,吃饭,睡觉 // 行为:该事物能够做什么
编成语言是为了更好的模拟现实世界的,java中最基本的单位是【类】,其核心就是把事物通过类来体现。
定义一个类,其实就是定义该类的成员变量和成员方法。
类://【事物】
成员变量 // 事物的【属性】
和以前变量的定义是一样的格式,但是位置不同,在类中方法外。
成员方法 //事物的 【行为】
和以前的方法定义是一样的格式,但是今天把static先去掉。
1. 基于面向过程的编成思想。
2. 强调的是对象,然后由对象去调用功能。 //面向过程强调的是每一个功能的步骤。
3. 更符合人的思想习惯;简化事情;从执行者变成了指挥者。
通过例子感受面向对象的思想:
- 买电脑:
面向过程: 了解自己对电脑的性能需求---->找对应的硬件参数---->去京东筛选类似的---->比较选择---->买回电脑。
面向对象:了解自己对电脑的需求---->找采购人员去买----->买回电脑
把具体的动作打包让【方法】去完成,我们只需要调用功能模块就行了。
面向对象本质:以类的方式组织代码,以对象的方式组织(封装)数据。
面向对象适合比较复杂的,面向对象分装了面向过程。面向对象把握整体,面向过程实现细节。【管理者;分类】
类:是一组相关的属性和行为的集合;是一个抽象的概念。类是对象的抽象,抽象出像的部分。 //学生
对象:是该类事物的具体表现形式。具体存在的个体。对象是具体的事物 //班长
面向对象开发
就是不断的创建对象,使用对象,指挥对象做事情。
面向对象设计
其实就是在管理和维护对象之间的关系。
面向对象特征
封装(encapsulation)
继承(inheritance)
多态(polymorphism)
在一个java文件中写两个类:一个基本的类,一个测试类,文件名称和测试类名称一致。
测试类(StudentDemo,PhoneDemo)一般只负责创建对象,调用方法,所以,这个判断应该定义在类(Student,Phone)中,所以我们将数据校验定义在方法中。
类通过创建对象来使用。
创建对象格式:
格式:类名 对象名 = new 类名();
使用成员变量: 对象名.变量名
使用成员方法: 对象名.方法名(...)```clike
- 初级使用
//这是学生类
class Student {
String name; //null
int age; //0
String address; //null
public void study() {
System.out.println("学生爱学习");
}
public void eat() {
System.out.println("学习饿了,要吃饭");
}
public void sleep() {
System.out.println("学习累了,要睡觉");
}
}
//这是学生测试类
class StudentDemo {
public static void main(String[] args) {
Student s = new Student(); //创建对象
System.out.println(s.name+"---"+s.age+"---"+s.address); //使用成员变量
s.name = "林青霞"; //给成员变量赋值
s.study(); //使用成员方法
}
}
- 给方法传入参数
class Phone {
String brand;
int price;
String color;
public void call(String name) { //给方法传入参数
System.out.println("给"+name+"打电话");
}
public void sendMessage() {
System.out.println("群发短信");
}
}
class PhoneDemo {
public static void main(String[] args) {
Phone p = new Phone();
p.sendMessage(); //无参调用
p.call("林青霞"); //传入参数,参调用
}
}
- 面向过程
面向过程:
A:打开冰箱门
B:装进大象
C:关闭冰箱门
class Demo {
public static void main(String[] args) {
open();
in();
close();
}
public static void open() {
System.out.println("打开冰箱门");
}
public static void in() {
System.out.println("装进大象");
}
public static void close() {
System.out.println("关闭冰箱门");
}
}
- 面向对象
将事物分析为面向对象:名词提取法
4. 有那些类: 大象 冰箱 Demo
5. 每个类有哪些东西:
大象:进去
冰箱:开门 关门
Demo: main方法
6. 类与类的直接关系
Demo中使用大象和冰箱类的功能。
class ELephant {
public static void in() {
System.out.println("装进大象");
}
}
class Refrigerator { //冰箱
public static void open() {
System.out.println("打开冰箱门");
}
public static void close() {
System.out.println("关闭冰箱门");
}
}
class Demo {
public static void main(String[] args) {
冰箱调用开门
大象调用进去
冰箱调用关门
}
}