3.2面向对象

  1. 面向对象与面向过程的区别:

      面向过程指的是工作过程如何执行,而面向对象指的是工作该让谁来完成。

 

 

  1. 面向对象三大思想:

        OOA:面向对象分析(Object Oriented Analysis)  

   OOD:面向对象设计(Object Oriented Design)  

   OOP:面向对象程序(Object Oriented Programming

  1. 面向对象三大特征:

       封装性:所有的内容对外部不可见

继承性:将其他的功能继承下来继续发展

多态性:方法的重载本身就是一个多态性的体

  1. 对象的创建与使用:

        类是一群对象的特征,使用时必须落实到类。

          Class  对象 = new  Class();

           访问属性  对象.属性

访问方法:对象.方法();

5.Java栈的区域很小 , 大概2m左右 , 特点是存取的速度特别快

 

栈存储的特点是, 先进后出

 

 

6. 存储速度快的原因:

 

    栈内存, 通过 '栈指针' 来创建空间与释放空间 !

 

    指针向下移动, 会创建新的内存, 向上移动, 会释放这些内存 !

 

    这种方式速度特别快 , 仅次于PC寄存器 !

 

    但是这种移动的方式, 必须要明确移动的大小与范围 ,

 

    明确大小与范围是为了方便指针的移动 , 这是一个对于数据存储的限制, 存储的数据大小是固定的 , 影响了程序 的灵活性 ~

 

    所以我们把更大部分的数据 存储到了堆内存中

 

  1. 栈内存储的是: 基本数据类型的数据 以及 引用数据类型的引用!

     

         例如:

 

             int  a  =10;

 

            Person p = new Person();

 

           10存储在栈内存中 ,  第二句代码创建的对象的引用(p)存在栈内存中

8.堆:存放的是类的对象。所有类的对象都是通过new关键字创建

 

new关键字, 是指告诉JVM , 需要明确的去创建一个新的对象 , 去开辟一块新的堆内存空间: 堆内存与栈内存不同, 优点在于我们创建对象时 , 不必关注堆内存中需要开辟多少存储空间 , 也不需要关注内存占用 时长 !

 

堆内存中内存的释放是由GC(垃圾回收器)完成的

 

 

垃圾回收器 回收堆内存的规则:

 

当栈内存中不存在此对象的引用时,则视其为垃圾 , 等待垃圾回收器回收 !

  1. PC寄存器:在Java程序中, 每个线程启动时, 都会创建一个PC寄存器 !,它保存的是当   前正在执行的JVM指令的地址。
  2.  构造方法

      Person p0 = new Person();

  

      作用:用于对象初始化。

执行时机:在创建对象时,自动调用

特点:所有的Java类中都会至少存在一个构造方法      

如果一个类中没有明确的编写构造方法,  则编译器会自动生成一个无参的构造方法, 构造方法中没有任何的代 码!          

如果自行编写了任意一个构造器, 则编译器不会再自动生成无参的构造方法。

定义的格式:

与普通方法基本相同, 区别在于:  方法名称必须与类名相同, 没有返回值类型的声明 !

案例:

     public class Demo3{

       public static void main(String[] args){

           Person p = new Person();  

           p = new Person();      

           p = new Person();         

           p = new Person();

       }

   }   

 class Person{   

     public Person(){  

          System.out.println("对象创建时,此方法调用");     

   }   

 }

建议自定义无参构造方法,不要对编译器形成依赖,避免错误发生。

当类中有非常量成员变量时,建议提供两个版本的构造方法,一个是无参构造方法,一个是全属性做参数的构造方法。

当类中所有成员变量都是常量或者没有成员变量时,建议不提供任何版本的构造

  1. 方法的重载:

      方法的名称相同,参数类型或参数长度不同,可以完成方法的的重载!重载与返回值无关。

方法的重载 ,可以让我们在不同的需求下, 通过传递不同的参数调用方法来完成具体的功能。

方法的重载与重写的区别:重载强调的参数的不同,重写是方法体得重写。

  1. 匿名对象

没有对象的名称,就是匿名对象。

匿名对象只能使用一次,因为没有任何的对象引用,所以将称为垃圾,等待被G·C回收。 只使用一次的对象可以通过匿名对象的方式完成,这一点在以后的开发中将经常使用到

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值