zoukankan      html  css  js  c++  java
  • JAVA 面向对象的一些基础理解

    方法的定义:方法就是一段可重复调用的代码段
    格式:
    访问修饰符 返回值类型(可以是void、基本数据类型、引用数据类型) 方法名(){
    方法主体

    }
    注意:void返回值类型不需要返回值,而其他类型都需要有返回值。

    方法的重载:方法名称相同,但是参数的类型和个数不同,通过传递参数的个数和类型来完成不同功能的操作。

    类和对象的关系:类是对某一事物的描述,是抽象的、概念上的意义,对象是实际存在的该类事物的每一个个体,也被称为实例
    类的声明格式:
    class 类名称
    {
    属性
    方法

    }
    类名 对象名=null//声明
    对象名=new 类名()//实例化操作
    类名 对象名=new 类名//声明并实例化
    内存划分:
    类名 对象名:是在栈内存开辟了一个空间
    对象名指向对应的堆内存空间
    new 类名():使用new开辟的堆内存空间
    开辟的堆内存中的属性都是默认的值,例如:
    String 的默认值是null int的是0等等;
    经过对属性的赋值后堆内存中的值才会改变
    在没有私有化属性和方法时可以使用:
    对象.属性//赋值
    对象.方法//调用
    注意:如果没有进行new 类名()操作就会出现空指针异常:
    Exception in thread "man" java.lang.NullPointerExcetion
    面向对象基础了解:
    程序的发展历程:面向过程、面向对象
    什么是面向过程和面向对象:比如说要做一个盒子,面向过程是:不想去做一个什么样子的盒子,随机取工具来做。面向对象是:先想好要做一个什么样子的盒子,在找对应的工具来做
    面向对象的三大特征:
    1.封装性
    对外部不可见
    比如说电视:电视机有外壳,而外壳的作用就是为了保护电视机内部零件,而电视通常在外部留有按钮方便人们来使用,而程序也是这样会留下一些接口方便我们使用。
    2.继承
    扩展类的功能
    例如:你父亲有1000W当你父亲老去了,他只有你一个儿子,他的财富积累过程就终结了,而你继承了你父亲的1000W,你的财富积累就会从1000W开始积累而且不会出现亏损的现象
    3.多态性
    方法的重载
    对象的多态性
    方法的递归调用:
    1.方法递归调用是一种特殊的调用形式,就是方法自己调用自己
    递归调用→方法(参数)
    ↗ N ↓ Y(递归调用的出口)
    执行语句←———满足结束条件———→返回调用处
    代码如下:
    public class Demo{
    public static void main(String[] args){
    System.out.println(addNum(100));
    }
    public static int addNum(int n){
    if(addNum==1){//对于本程序来说addNum==1就是程序出口
    return 1;
    }else{
    return n+addNum(n-1)
    }
    }
    封装性:
    保护当前类的某些属性和方法不被外部类所看见
    封装性的实现:
    为属性和方法进行封装是通过关键字private进行声明的
    实现该属性的set和get方法,为外部所访问
    匿名对象:
    匿名对象就是没有名字的对象,如果程序中只使用一次该对象,就可以使用匿名对象的方式
    格式: new 类名.方法名()(注意:只适合使用一次的对象)
    构造方法:
    格式:
    访问修饰符 类名称(){
    程序语句
    }
    注意:1.构造方法名称与类名称相同
    2.构造方法没有返回值类型
    构造方法主要是为了类中的属性初始化
    每个类实例化之后都会调用构造方法,如果没有构造方法,程序在编译的时候就会创建一个什么都不做的无参的构造方法
    构造方法的重载:
    方法名称相同,但是参数的类型和个数不同,通过传递参数的个数和类型来完成不同功能的操作。

    引用传递:

    this关键字:
    1.表示类中的属性和调用方法
    this.属性名(当前类中的属性) this.方法名(当前类的方法)
    2.调用本类中的构造方法
    this()(调用无参的构造方法,注意this()必须放在构造方法的首行)
    3.表示当前对象


    继承:
    继承的基本概念:扩展父类的功能
    例如:你父亲有1000W当你父亲老去了,他只有你一个儿子,他的财富积累过程就终结了,而你继承了你父亲的1000W,你的财富积累就会从1000W开始积累而且不会出现亏损的现象
    JAVA中使用extends关键字完成继承
    class 子类 extends 父类{}
    JAVA中的继承限制:
    1.只允许单继承
    2.子类不能直接访问父类的私用成员,如果要调用只能通过get和set来调用
    子类对象的实例化过程:
    1.子类对象实例化之前必须要调用父类中的构造方法,之后调用子类的构造方法
    ↑→先调用父类的构造方法→调用父类构造
    实例化子类对象
    ↓→在调用子类的构造方法→调用子类构造
    JAVA中方法重写和super关键字:
    1.在继承中,也存在着重写的概念,其实就是子类中定义了与父类中的同名的方法
    2.定义:
    方法名称相同,返回值类型相同,参数相同
    3.重写限制:
    被子类重写的方法不能拥有比父类方法更严格的访问权限
    4.访问权限:
    private<default<public其中,default是默认的

    super关键字:
    super强行调用父类中的方法

    JAVA中重写与重载的区别:
    重载(Overloading)定义:方法名称相同,参数的类型或个数不同对权限没有要求,范围是在同一个类中
    重写(Overriding)定义:方法名称相同,返回值类型相同、参数的类型相同,
    被重写的方法不能拥有比父类方法更严格的访问权限,范围是在继承类中

    抽象类和接口
    final关键字的使用
    final在JAVA中被称为完结器,表示最终的意思
    final能声明类、方法、属性
    使用final声明的类不能被继承
    使用final声明的方法不能被重写
    使用final声明的变量被称为常量且不能被修改
    抽象类
    1.抽象类概念:
    包类个抽象方法的类就是抽象类
    2.抽象方法:
    声明而未被实现的方法,抽象方法必须使用abstract关键字来声明
    3.抽象类被子类继承,子类(如果不是抽象类)必须重写抽象类中的所有抽象方法
    4.定义格式 abstract class className(){
    属性
    方法
    抽象方法
    }
    5.抽象类不能被直接实例化,要通过其子类进行实例化

    既然走上了这条路,那么久不能背信弃义,就要一直走下去。即使前面是刀山火海也要闯一闯。至于结果是悲喜,或许只有时间才能给出答案。
  • 相关阅读:
    Web开发人员必备工具-Emmet (Zen Coding)
    Zerver是一个C#开发的Nginx+PHP+Mysql+memcached+redis绿色集成开发环境
    jquery 插件站
    数据挖掘项目之---通过对web日志的挖掘来实现内容推荐系统
    类似wordpress的网站模板
    浅谈 SOAP
    在Livemedia的基础上开发自己的流媒体客户端 V 0.01
    模式识别之分类器knn---c语言实现带训练数据---反余弦匹配
    多项式相乘快速算法原理及相应C代码实现---用到fft
    模式识别之基础---常用分类算法特性归纳
  • 原文地址:https://www.cnblogs.com/yckv/p/4808867.html
Copyright © 2011-2022 走看看