- 重点掌握什么是面向对象?
- 重点掌握面向对象封装的意义?
- 重点掌握类的封装,创建对象,访问对象?
面向对象
OO:(Object Oriented)面向对象
面向对象是一种编程思想,遵循面向对象设计原则可以写出高质量代码,
高质量代码:代码复用性要好,扩展性要好 ,维护性要好,可读性要好,健壮性要好,效率要好,移植性好。
对象和类
类:抽象不具体的,通常表示一类事物的统称. 在程序中表示模板。
对象:具体的,真是存在的. 在程序中表示在内存中的对象。
软件中对象是指具体类别的个体,类别是根据对象归纳出来的模型。程序中类模板的目的就是为了重复创建更多的对象。
上述角色中,都属于游戏中具体的角色对象,每个角色对象都有哪些数据呢?
角色1:String name = "雷电将军"; char Gender = '女'; int Level=90; String weapon ="稻光" ;int weaponLevel =90;
角色2:String name = "霄宫"; char Gender = '女'; int Level=90; String weapon ="弦振" ;int weaponLevel =90;
角色3:String name = "宫心海"; char Gender = '女'; int Level=90; String weapon ="*月华" ;int weaponLevel =90;
角色4:String name , char Gender , int Level ,String weapon , int weaponLevel
角色5:String name , char Gender , int Level ,String weapon , int weaponLevel
....
角色100:....
会发现存在大量冗余重复的数据,我们可以通过类来解决
面向对象的三大特征:封装,继承,多态
封装
封装的意义:当需要产生多个对象时,可以通过类模板,批量产生对象。
- 如何创建类模板
- 类中放当前类的所有对象共有的数据/属性 --------------- 变量
- 类中放当前类的所有对象共有的行为/方法 --------------- 方法
class Person{ //人类
//共有的数据
String name;
char gender;
int age;
//共有的行为
void sleep(){ }
void eat(){ }
void play(){ }
}
------------------------
class Car{ //车类
//共有的数据
String color;//颜色
double price;//价格
String type;//型号
//共有的行为
void run(){ } 运动
void back(){ } 后退
void stop(){ } 刹车
}
------------------------
/**
* 学生类模板:
* 所有学生对象共有的数据,共有的行为。
* 注意:模板类不需要运行,所以不需要构建main功能!
*/
public class Student {
//共有的属性(数据) 全局变量:在类的里面声明的变量,作用范围在整个类中
String name;//姓名
int age;//年龄
int stuID;//学号
//共有的行为
void study() { //局部变量:在方法结构中声明的变量,作用范围只在当前方法中
int a = 0;
System.out.println(name + "在学习");
}
void sayHi() {
int a = 1;
System.out.println("大家好我叫:" + name + "我的年龄是:" + age + "我的学号是:" + stuID);
}
变量分类
全局变量(成员变量):在类的里面声明的变量,作用范围在整个类中.
局部变量:在方法结构中声明的变量,作用范围只在当前方法中.
自己创建的类,属于自定义类型.是引用类型
2.如何创建类对象
类型 变量 = 创建Scanner对象
Scanner s = new Scanner();//创建一个扫描器对象
Student zs = new Student();//创建一个学生对象 并将对象存储给zs这个变量
Student ls = new Student();//创建一个学生对象 并将对象存储给ls这个变量
Student ww = new Student();//创建一个学生对象 并将对象存储给ww这个变量
3.如何访问类对象
package oo.day01;
/**
* 学生类的测试类:
*/
public class StudentDemo {
public static void main(String[] args) {
Student zs = new Student();//创建一个学生对象 并将对象存储给zs这个变量
//1.创建对象时,对象有什么内容由模板来决定.
//2.zs这个变量能打点调用出什么,由模板来决定.
zs.name = "张三";
zs.age = 18;
zs.stuID = 1001;
zs.study();
zs.sayHi();
Student ls = new Student();
ls.name = "李四";
ls.age = 26;
ls.stuID = 1002;
ls.study();
ls.sayHi();
}
}