面向对象
面向对象与面向过程都是一种思想
面向过程强调的是过程,凡事亲力亲为
面向过程强调的是结果,我们是指挥者而非执行者
java是一门面向对象的语言,万物皆对象
类 类型Type,是一类事物的抽象,是设计图纸/模板,用关键词class来描述
对象,是抽象设计的具体实现,用关键字new来创建对象
注意:一个类可以创建出多个对象,这些对象各自都占有独立的空间
面向对象的三大特征
1、封装 把相关的数据封装成一个“类”组件
2、继承 是子类自动共享父类属性和方法,这是类之间的一种关系
3、多态 增强软件的灵活性
========================================================================
Idea project相当于eclipse的workspace工作空间,指向的是存放代码的文件
我们可以选中这个自定义的"project"右键new Module
创建Module以后就可以在当前Module的src中正常创建包和类了
如果环境损坏,可以切换project,左上角的File→New→Project
一个java文件可以创建多个class
但是被public修饰的class只能有一个
而且这个公共类的名字就是文件的名字
========================================================================
OOP入门案例分析
1.描述一类事物--通过类class
1)属性:通过成员变量
2)功能:通过方法函数
2、在公共类的main方法中创建这个类的对象
通过new:Phone p = new Phone();
3、利用创建好的对象:
1)使用功能:对象.方法名 p.call();
2)查看属性: 对象.属性名 System.out.println (p.brand);
========================================================================
队列:先进先出-例如排队
栈 :后进先出 - 例如手枪子弹
new Cat(); //创建匿名对象
Cat c = new Cat(); //创建普通对象
创建对象时,内存究竟经历了什么?
1、在栈内存中开辟一块空间,存放引用类型变量p,并把p压入栈底
2、在堆内存中开辟一块空间,存放Phone对象
3、完成对象的初始化,并赋予默认值
4、给初始化完毕的对象赋予唯一的地址值
5、把地址值交给引用类型变量p来保存
匿名对象没有在栈内存中存放,没有名字,只能使用一次
调用时:new Cat().play(); 调用完毕匿名对象就失去作用了,适合只用一次的场景
=========================================================================
面向对象三大特征之一:封装
1)将一类事物的特征与功能封装成一个"类"组件
2)限制属性/方法的使用
提高安全性、重用性
属性的封装:
1)用private修饰属性
2)提供对应的get与set()
右键空白处->Generate->Getter and Setter->选中属性-ok
3)使用封装的属性
给封装的属性设置值:setXxxx() --设置值的时候需要传参数
获取封装的属性值: getXxxx()
方法的封装:不常用
1)用private修饰方法
2)在同类中的public方法里调用这个私有方法