Java 7天劝退(三)-面向对象编程

面向对象

简介

面向过程的操作是以程序的基本功能实现为主,开发的过程中只是针对问题本身的实现,并没有很好的模块化的设计,所以在进行代码维护的时候较为麻烦。而面向对象,采用的更多的是进行子模块化的设计,每一个模块都需要单独存在,并且可以被重复利用。总的来说面向对象关注的是对象本身,既模块化的设计,
特征主要有封装,继承,多态

封装

继承

多态

类与对象

基本概念

类和对象的关系:类实际上是表示一个客观世界中某类群体的一些基本特征抽象,属于抽象的概念集合,对象就是表示一个个具体的事物。
例如,在现实生活中,人就可以表示为一个类,因为人本身属于一种广义的概念,并不是一个具体个体描述。而某一个具体的人,如张三同学,就可以称为对象,

定义语法

类:类是由属性和方法组成的。属性就是一个变量,方法是一些操作的行为
在这里插入图片描述

说明:

  • 类:类是由属性和方法组成的
  • 常见名称:
    属性=成员变量=filed=域,字段
    方法=成员方法=函数=method
    创建类的对象=类的实例化=实例化类
    例如:
 class Person{
   //定义一个Person类
    String name;//人名
    int age;//年龄
    boolean isMale;//是否为男性
    public void eat() {
   //调用对象的行为
        System.out.println("我在吃饭");
    }
}
//类的使用
public class ObjTest {
   
    public static void main(String[] args) {
   
        //创建对象
        Person person = new Person();
        //调用对象的结构
        person.name="Java";
        person.age=10;
        person.isMale=true;
        System.out.println(person);
        person.eat();
        }
  • 内存解析:数据类型的执行分析就必须结合内存操作来看。下面给出两块内存空间的概念。
  • 堆内存(heap):保存每一个对象的属性内容,堆内存需要用关键字new才可以开辟,如果一个对象没有对应的堆内存指向,将无法使用;
  • 栈内存(stack):保存的是一块堆内存的地址数值,可以把它想象成一个int型变量(每一个int 型变量只能存放一个数值),所以每一块栈内存只能够保留一块堆内存地址。

个人理解:下面换个角度来说明这两块内存空间的作用。 掌握以上内存分析方法对于程序理解与概念应用是非常重要的。

  • 堆内存:保存对象的真正数据,都是每一个对象的属性内容;
  • 栈内存:保存的是一块堆内存的空间地址,但是为了方便理解,可以简单地将栈内存中保存的数据理解为对象的名称(Person person),就假设保存的是“person”对象名称
    在这里插入图片描述
    上面的例子的内存解析
    内存解析 说明
    在所有的引用分析里面,最关键的还是关键字“new”。一定要注意的是,每一次使用关键字new 都一定会开辟新的堆内存空间,所以如果在代码里面声明两个对象,并且使用了关键字new为两个对象 分别进行对象的实例化操作,那么一定是各自占有各自的堆内存空间,并且不会互相影响。

属性(成员变量)和局部变量

相同点:

  • 定义格式:数据类型 变量名=变量值;
  • 先声明后使用
  • 量都有其对应的作用域

不同点:

  • 声明位置不同:属性:定义在{},局部变量:声明在方法内,形参,代码块,
  • 修饰符不同:属性:使用属性修饰符,包括public,protected,default,private;局部变量:使用不了
  • 默认初始化值:属性:类的属性:根据类的属性都有初始化值;局部变量:无初始化值。我们在调用局部变量,必须显性赋值。注意:形参在调用是,直接赋值即可
  • 内存加载位置不同:属性:堆(非static); 局部变量:栈

方法的重载

方法重载

在一个类中,允许多个方法使用同一个名字,但方法的参数不同,完成的功能也不同。体现了多态性

public class OverLoadTest {
   
    public static void main(String[] args) {
   
        OverLoadTest overLoadTest=new OverLoadTest
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值