初学面向对象

面向对象和面向过程:
    都是解决问题的思维方式,都是代码的组成方式.
    面向过程是一种"执行者思维",解决简单的问题可以使用面向过程
    面向对象是一种"设计者思维",解决复杂,需要协作的问题,可以使用面向对象.
    面向对象离不开面向过程
        宏观上: 通过面向对象进行整体设计
        微观上: 执行那个处理数据,仍然是面向过程
对象和类:
    类:
        类可以看成一类对象的模板,对象可以看成该类的一个具体事例
        类是用于描述同一类型的对象的一个抽象概念,类中定义了这一类对象
            所应具有的共同属性,方法
        对于一个类来说,有三种成员:属性field,方法method,构造器constructor
        属性:用于定义该类或该类对象包含的数据或者说静态特征.属性作用范围是整个
            类体.在定义成员变量是可以对其初始化,如果不对其初始化,java使用磨人的值对其初始化
             属性的定义格式:  [修饰符] 属性类型 属性名=[默认值];
        方法:方法用于定义该类或该类实例的行为特征和功能实现.方法是类和对象行为特征的抽象.
            面向对象中,整个程序的基本单位是类,方法是从属于类和对象的
             方法的定义格式:  [修饰符] 方法返回值类型 方法名(形参列表){
                 //n条语句
             }
        
构造器4个要点:
    *构造器通过new关键字调用!!
    *构造器虽然有返回值,但是不能定义返回值类型(返回值的类型肯定是本类),
        不能在构造器里使用return返回某个值
    *如果我们没有定义构造器,则编译器会自动定义一个无惨的构造方法,
        如果已定义则编译器不会自动添加!
    *构造器的方法必须和类名一致
    *与普通方法一样,构造方法也可以重载
    *修饰符 final abstract static不能用来修饰构造器
    
    *Java虚拟机的内存可以分为三个区域:栈stack 堆heap 方法区method area
        栈:
            1.栈描述的是方法的执行的内存模型.每个方法被调用都会创建一个栈帧
                (存储局部变量,操作数,方法出口等)***
            2.JVM为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数,局部变量等)***
            3.栈属于线程私有,不能实现线程间的共享!***
            4.栈的存储特性是"先进后出,后进先出"***
            5.栈是由系统自动分配,速度快!栈是一个连续的内存空间!
        堆:
            1.堆用于存储创建好的对象和数组(数组也是对象)***
            2.JVM只有一个堆,被所有线程共享***
            3.堆是一个不连续的内存空间,分配灵活,速度慢!***
            4.堆被所有线程所共享,在堆上的区域,会被垃圾回收期做进一步划分,
                例如新生代,老年代的划分.
        方法区:
            1.方法区是java虚拟机规范,可以有不同的实现.
                i,        JDK7以前是"永久代"
                ii,    JDK7部分去除"永久代",静态变量,字符串常量池都挪到了堆内存中
                iii,   JDK8是"元数据空间"和堆结合起来.
            2.JVM只有一个方法去,被所有线程共享***
            3.方法区实际也是堆,只是用于存储类,常量相关的信息
            4.用来存放程序永远是不变或唯一的内容.(类信息,静态常量,字符串常量等)
            5.常量池主要存放常量:如文本字符串,final常量值.
重载
    一个类中可以存在多个构造器
        1. 方法重载: 两同三不同 同一个类方法名相同,形参类型 个数 顺序不同
        2. 构造器重载: 只看形参即可 形参类型 个数 顺序不同。调用时按“就近最优原则”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值