面向对象①

来源:互联网 发布:阿里云学生服务器饥荒 编辑:程序博客网 时间:2024/06/05 08:49

面向对象和面向过程
面向过程:
一步一步的描述 重点是过程
面向对象:
寻找对象 使用对象 解决问题 重点是对象
举例:买一台组装电脑
面向过程:
1.挑选主板
2.挑选CPU
3.挑选显卡
……
面向对象:
1.找一个懂电脑的人
2.这个人帮你解决 买电脑的问题

通过上面的例子可以看出来 面向对象解决一件事情要比面向过程要简单的多
我们主要看面向对象
特点:
1.将复杂的问题简单化
2.从事情的执行者变成指挥者
3.面向对象的思考问题更接近于人的思想方式
特征: 封装 继承 多态
类: 一类抽象事物的集合
对象: 使用类创建出来的 集体的事物
面向对象其实就是维护类和对象之间的关系 不断地操作对象 使用对象 指挥对象去完成一些功能
我们可以先写一个对象来看看
类名 对象名 = new 类名();
学生对象

Student stu = new Student();stu.name = "小明";stu.age = 15;stu.gender = "男";System.out.println(stu.name);System.out.println(stu.age);System.out.println(stu..gender);stu.eat();stu.sleep();stu.lesson();

在这里对小明同学有哪些描述
1.姓名
2.年龄
3.性别
4.吃饭
5.睡觉
6.上课
那么这6种描述有什么不同或者相同之处呢?
姓名 年龄 性别这三种我们可以称之为属性
吃饭 睡觉 行为我们可以称之为行为

属性在程序中就是成员变量
行为在程序中就是成员方法

局部变量和成员变量的区别
1.书写的位置
局部变量: 方法中 或者 方法的声明中
成员变量: 类中 方法外

2.初始化值
局部变量: 没有初始值 必须给初始值 才能使用
成员变量: 有默认的初始值

3.内存存在的位置
局部变量: 栈内存
成员变量: 堆内存

4.声明周期
局部变量: 随着方法的入栈而出生 出栈而死亡
成员变量: 随着对象的出生而出生 死亡而死亡

在声明成员变量的时候也可以给一个初值 这时候这个初值就相当于默认值

匿名对象
匿名 就是说没有名字的对象
好处: 节省代码
用处: 只调用一个方法的时候

封装
把属性和方法的具体实现隐藏
只开放公共访问的方法
成员变量私有化就是封装的一种变现形式
这里有一个系统的关键字
private —> 权限修饰符
在属性前面添加了这个关键字之后 这个关键字就变成了私有属性
私有属性就是只能在本类中能够访问 出了本类就不能去访问

那么如何去访问private修饰的成员变量
1.获取

class phone{    private String name;    String color;    public String getName(String n) {        return name;    }}

通过用get…来获取name
2.修改

class phone{    private String name;    String color;    public void setName(String n) {        name = n;    }}

通过set…来进行修改属性的值

类是可以重名的
只不过是放在不同的包下
在访问的时候也要指明访问的是哪个包下面的类