- 重点掌握什么是面向对象?
- 重点掌握面向对象封装的意义?
- 重点掌握类的封装,创建对象,访问对象?
面向对象
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();}}