面向对象的思想

面向过程是侧重点是怎么做

面向对象的侧重点是谁来做

这两个都是思维方式,相辅相成的;

以面向对象的思考方式解决问题就是,第一步咱们通过名词抽取发,将题目中的对象抽取出来,第二步然后根据抽取出来的对象找一些他的共性,总结成一个类,第三步根据题目的要求,在类中生成对应的属性和方法,第四步就是根据题目要求,创建对应的对象,然后让对象调用相应的方法和属性。再这个过程中咱们是先创建类,类里面的方法和属性咱们又是根据面向过程的思维方式进行完善。这样再完成一个任务的时候我们用对象调用相应的方法和属性,所以说面向对象和面向过程这两个思维方式相辅相成的,缺一不可,只不过面向对象就相当再外面包装了一下,具体里面怎么做的,只要不是咱们自己写的就可以不用管他了,比如咱们java中很多系统的类,咱们只要用这个类的对象调用方法就可以,至于里面的方法怎么写的,那就不用管了,这就是面向对象,如果你再进去看看源码每步怎么走的,方法怎么实现的这就是面向过程的一种方式了

面向对象中提到了两个概念一个是对象,一个是类;对象就是再咱们这个客观世界里面一切可以被描述的事物都是一个对象,类是根据对象的属性和方法抽取出来;类是对象的一个类型,对象是类的一个实体;对象是客观存在的,是一个实体,类是抽象的,就是各个对象的一个个的模板。

当你在代码中单独得创建一个类的时候,我们执行编译之后它会生成字节码,然后我们运行的时候,并没有加载这个类,当我们在创建这个类的对象的,这个时候咱们的jvm(java虚拟机)才会通过类加载器,加载咱们编译生成的字节码到内存的方法区,这个时候会在方法区开辟一块内存空间来保存咱们类的信息,这个类的信息主要有属性,方法等等(总之类的所有信息都存上了),在这个方法区里面只是记录了一下这个类有哪些属性和方法;并没有为属性开空间;这个时候又创建了一个对象,这个时候因为咱们方法区里面有这个类了,这个时候就不会再加载了,类只会加载一次,接着往下说,因为new了一下,所以我们在堆里开辟了一块大的空间(在这个大的空间里面又为每个属性开辟了一块小的房间),在栈里面有一个引用的变量指向这个堆中的对象;类中的方法是保存在方法区;(然后通过对象的引用变量名调用方法的时候就进行了入栈的过程)

类中的属性问题,类中的属性如果你没有提供值的时候都有默认的值,引用类型的为null,注意boolean类型为false;类的属性又可以称为成员变量,或者实例变量,根据作用域咱们可以分为全局变量和局部变量,全局变量作用域在整个的类体中,他是有默认值的,全局变量和局部变量直接可以重名的,能加修饰符的,存放在堆的空间里面,局部变量作用域再方法体或者代码块中国,没有默认值,作用域相当的区间两个局部变量不能重名,也不能有修饰符,他是存放在栈空间

类中的修饰符问题,主要有四种,他们都可以修饰外部类,属性,方法,构造器,成员内部类,(局部内部类不可以用)这四个修饰符分别是:private修饰的只能用于本类中,不写的用于同一个包中当然也可以用于本类中,protected修饰的能用于能用于前面的两种情况  他还可以用于其他包的子类中;public作用域最广,用于笨项目中的任何地方

类中的关键字this,它指的是当前类的对象,可以访问属性、方法、构造器(访问构造器的时候放在第一行)不能访问局部变量和类

类的构造器是用来创建对象的,可以再构造器里面为属性赋值,在类中如果没有提供构造器的时候,系统会默认的给提供一个无参数的构造器,如果你自己定义了构造器,系统就不再为你提供无参数的构造器了,构造器是可以重载的,可以通过this调用





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值