oop(面向对象编程学习1)

oop(Object Oriented Programming)面向对象编程


Day01:
    1.编程可以分类为面向过程编程和面向对象编程.
    面向过程编程:考虑的是程序整体的运行流程(比如我需要制造一辆小汽车,需要考虑先造轮胎还是发动机还是汽车外壳等流程)
    面向对象编程:考虑的是如何将每个解决业务问题的程序代码组合在一起(比如将小汽车的发动机,轮胎等部件组装起来)
    相比较于面向过程编程,面向对象编程能显著的减少代码冗余,提高代码的可维护性和可扩展性
    2.什么是对象?
    在编程里面,万物皆可以是对象,生活就是由无数的对象组成的,通俗理解可以把对象理解成东西,而且还可能有对象中包含对象的含义.
    生活中,对象是真实存在的,比如一个杯子,被子里面的水都可以称之为对象,类型是一个概念,泛指所有这个类型的对象.所以在生活中,是先有的对象再有的类
    在编程里面,和生活正好相反,先有的类再有的对象.
    3程序中的对象包含有两条性质:
        3.1属性:表示该对象所具有的数据描述(比如,对于对象小汽车,长是多少,宽是多少,都属于这个小汽车的属性)
        3.2方法:表示对象所具有的行为和功能(如,还是一辆小汽车,该汽车可以鸣笛,可以开关车门等一些列操作)
    4程序中自建类:
        class <类名>{  //类名首字母必须大写                        //属性(成员变量)         
            public <返回值类型><方法名>  (参数列表){
                //方法体
        }
    }
        4.1当我们自定义一个类时,可以将多个不同类型的数据放在同一个对象当中
        4.2类像一个模板,规定这个类里面的对象所拥有的属性和方法
        4.3一个类可以创建无数个对象
    5由类创建对象
        在代码中编写创建对象的代码叫对象的实例化
            <类名><对象名>=new<类名>();    
          如:Student stu=new Student();
        如何操作一个对象?
            <对象名>.<属性>;
            <对象名>.<方法>;(.可以理解成 的)
        对象实例化以后是有默认值的(0/0.0/false/null)
    6.public class <类名>(类名必须和文件名一致)
            且之后的所有类名不能有修饰符public
       只有public所修饰的类中能有程序的入口main方法
    7.方法重载
        7.1方法签名
            方法签名=<方法名>+(参数列表)
            在同一个类中,不允许出现方法签名相同的        方法
        7.2方法重载(超载,Overload)
            在同一个类中,方法名相同,参税列表不同的方法,我们称之为方法重载
            1)在同一个类中
            2)方法名相同
            3)参数列表不同(包括列表中声明的数据类型不同,数量不同,顺序不同)
            4)方法重载与修饰符和返回值无关
        7.3调用重载方法时,代码进行编译时就确定了要运行哪一个方法,我们称之为编译期绑定
        7.4在方法功能类似只是参数不同时,我们可以使用相同的方法名,通过方法重载,方便我们进行记忆和调用
        7.5系统中出现的方法重载
            System.out.println();
            Arrays.copyOf();
            Arrays.sort();

 

 

 


Day02:
    1.构造方法(构造器 构造函数)
        在实例化对象时运行的特殊方法
        一般情况下,构造方法适合对实例化的对象赋初始值
        构造方法格式:
            public <类名>{
        //方法体
    }
        1.1构造方法不写返回值类型
        1.2构造方法的方法名必须和类名相同
        1.3构造方法不能调用,只能在对象实例化的时候运行(只有在new的时候运行)
            new<类名>(参数列表);//实例化对象时调用构造方法
        1.4注意事项:
            如果一个类中,没有编写构造方法,那么系统会自动生成一个无参构造方法
            如果编写了构造方法,系统就不会生成无参构造
            构造方法可以重载,原理与自定义方法的方法重载相同
    2.成员变量和局部变量
        成员变量就是类中定义的属性;
        方法中定义的变量或者形式参数就是局部变量.
    成员变量与局部变量的区别:
        2.1作用域不同,成员变量可以在类中的所有方法使用,局部变量只能在声明它的方法中使用
        2.2初始值不同,成员变量初始值(0\0.0\false\null)
局部变量没有初始值
        2.3优先级不同,当成员变量与局部变量同名时,局部变量拥有更高的优先级,如果想访问成员变量需在变量名称的前面加this.(this.<变量名>)
    3.this关键字
    this是对象在方法中对自身的引用
    
    this.<属性>
    区分成员变量和局部变量
    
    this.<方法>
    不常用

    this()
    调用当前类的构造方法,必须编写在构造方法的第一行(只能是构造方法!!!!!)方法不能自己调自己或者无限循环的调用称为 递归.
    4.引用数据类型
        4.1引用数组类型的特征(String,自造类,数组)
            变量保存的是这个对象的引用
            在方法中,变量的引用保存在 栈 中,而对象保存在 堆 当中
        4.2引用数据类型数组(实例化对象使用小括号,声明数组使用中括号)引用类型数组的默认值是null
        4.3关于null和null指针异常
            null是个常量,表示当前没有引用任何对象,当这样的null对象打.调用属性或方法时,会出现null指针异常;通常情况下,如果遍历引用数组类型时,发生null指针异常,那么需要在元素调用属性的方法前面增加一个if判断
        4.4多维数组(二维数组)
            数组的元素还是数组我们称之为二维数组

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值