JavaSE基础——面向对象

JAVA学习day06 JavaSE基础——面向对象

1.1 理解什么是面向过程,什么是面向对象。

面向过程与面向对象都是我们编程中,编写程序的一种思维方式。
面向过程的程序设计方式,是遇到一件事时,思考“我该怎么做”,然后一步步实现的过程。
例如:洗衣服这件事,面向过程就是思考怎么洗这件衣服,先泡衣服、搓衣服、漂洗、拧干、晒衣服。这就是面向过程的思维方式。

面向对象的程序设计方式,是遇到一件事时,思考“我该让谁来做”,然后那个“谁”就是对象,他要怎么做这件事是他自己的事,反正最后一群对象合力能把事就好就行了。
还是洗衣服这件事,面向对象的思想就是把这件事交给一个对象去干,这个对象它就是洗衣机,你只要把衣服扔进去,怎么洗是这个对象自己的事情,但最后它也能完成这件洗衣服的事。

1.2 面向对象的好处

● 面向对象思维方式是一种更符合人们思考习惯的思想;

● 面向过程思维方式中更多的体现的是执行者(自己做事情),面向对象中更多的体现是指挥者(指挥对象做事情);

● 面向对象思维方式将复杂的问题简单化。

1.3 面向对象的三大特征

  封装、继承和多态

1.4 类和对象的概述

  类是我们学习java 最基本的单位,是一组相关属性和行为的集合,所以类可以用来描述一个事物。对象就是这个类的具体体现。

例如:
  类:学生
  对象:班长

下面我们用一个学生类的案例来演示一下:

public class StudentDemo {
    private String name;
    private int age;
    private char sex;

    public void eat(){
        System.out.println("吃饭");
    }
    public void sleep(){
        System.out.println("睡觉");
    }
    public void study(){
        System.out.println("学习");
    }
}

再创建一个学生类的对象:

public class MyTest {
    public static void main(String[] args) {
        StudentDemo student = new StudentDemo();
        System.out.println(student.name = "张三");
        System.out.println(student.age = 15);
        System.out.println(student.sex = '男');
        student.eat();
        student.sleep();
        student.study();
    }
}

运行结果:
在这里插入图片描述
图 1-1 运行结果截图

 通过上述代码的描述,我们知道类的真正意义就是描述事物,而属性和功能统称为类的成员。

1.5 对象的内存图解

 就拿上面的学生类来做一个对象的内存图解如下:

在这里插入图片描述
   图 1-2 一个对象的内存图

1.6 成员变量和局部变量的区别

a. 在类中的位置不同
 成员变量:在类中方法外;
 局部变量:在方法中或方法声明上;
b. 在内存中的位置不同
 成员变量:在堆内存;
 局部变量:在栈内存;
c. 声明周期不同
 成员变量:随着对象的建立而存在,随对象的消失而消失;
 局部变量:随着方法的调用而存在,随方法的弹栈而消失;
d. 初始化值不同
 成员变量:有默认的初始值,如String初始化值为 null;
 局部变量:没有默认的初始值,定义赋值后才能使用。

1.7 匿名对象的使用

  匿名对象就是new 一个对象时不命名的对象,常用于仅仅调用一次的时候,匿名对象也可以作为参数传递。

1.8 对象的封装

 封装是指隐藏对象的属性和实现细节,仅对外提供公共的访问方式。
 封装的原则:
  将不需要的对外提供的内容隐藏,把属性隐藏,提供公共的访问方式对其进行访问。

代码演示:

package org.westos.demo5;

public class Student {
    private String name;
    private int age;
    private char sex;
    public void setName(String name){
        this.name = name;
    }
    public String getName(){
        return name;
    }
    public void setAge(int age){
        this.age = age;
    }
    public int getAge(){
        return age;
    }
    public void setSex(char sex){
        this.sex = sex;
    }
    public char getSex(){
        return sex;
    }
    public void eat(){
        System.out.print("吃饭");
    }
    public void sleep(){
        System.out.println("睡觉");
    }
    public void study(){
        System.out.println("学习");
    }
}

//测试封装
public class Test {
    public static void main(String[] args) {
        Student student = new Student();
        student.setName("大黄");
        student.setAge(20);
        student.setSex('男');
        System.out.println(student.getName());
        System.out.println(student.getAge());
        System.out.println(student.getSex());
        student.eat();
        student.sleep();
        student.study();
    }
}

运行结果:
在这里插入图片描述
图 1-3 运行结果截图

  上面代码中提到的 private 和 this 两个关键字的作用:
  private:是一个权限修饰符,可以用来修饰成员变量和成员方法,被private修饰的成员只能在本类中访问;
  this:是指当前类的一个对象引用。简单来说,this就是代表的一个对象,谁调用这个方法,这个方法内部的this就代表这个谁。this 解决了局部变量隐藏成员变量的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值