java理论之java面向对象

---恢复内容开始---

面向对象的四大特征:抽象   继承  封装   多态

   一:面向对象中的类

      1:类的作用  代码复用

      2:类的构成---代码段 : 一个完整的大括号就是一个代码段,就代表一个独立的内存空间

           ---动态代码段 : 就是没有任何修饰的一对大括号

           ---静态代码段:用static修饰的一对大括号static{},是在加载阶段运行的代码段

           ---成员变量 : 保存在堆内存中,堆内存的大小是动态分配的.   它的调用对象名.成员变量名     成员变量属于关联关系---成员变量的值是另外一个类对象的应用

           ---静态变量 : 是属于类级别的,每个对象中的值都一样,保存在内存中的静态数据区   它的调用:类名.静态变量名

           ---局部变量 : 在方法中声明的变量是局部变量,并且声明的时候,就必须赋值    局部变量属于依赖关系 ---局部变量的值是另外一个类对象的应用

           ---常量 : 声明:public static final 数据类型 大写_ = 值 ; 在整个软件生命周期中,值不会改变

           ---成员方法 : 没有static修饰的方法叫成员方法    它的调用 : 通过对象名.成员方法名

           ---静态方法 : 用static修饰的方法   调用 : 类名.静态方法名----保存在静态代码区中

           ---构造方法 :用于在类实例化中,创建当前类对象的方法(实例化当前类对象); 默认是:公共的,静态的,没有返回值的,名字和类名一样的

           ---this对象 :1 给成员变量加前缀,然后赋值

                 2 用在构造方法中,重载调用本类中别的构造方法,this()重载调用的时候,必须写在构造方法的第一行

                 3 用于表示本类的对象,里面保存了本类的地址,this位于堆内存中第一个内存片中

                 4 在堆内存中,我们有堆内存中第一个内存片的内存地址作为整个对象的内存地址,并且命名为this

           ---super对象 : super代表的是当前子类对象中的父类型特征。

                    在子类的构造方法重载调用父类别的构造方法的时候,必须卸载第一行

                    super()和this()不能重复出现

                    super可以用来调用父类的成员属性和成员方法

      3:类的形式---系统类,类库类,普通类和内部类

            内部类分为4种 : 静态内部类

                    成员内部类

                   局部内部类

                   匿名内部类

      4:类的继承---一个类只能从一个类继承,只有成员变量和成员方法可以被继承(局部变量在方法的内部,无所谓被继承)

             ---implements  可以从多个接口实现

             ---继承中方法的覆写Override : 1 必须是有继承关系的两个类之间

                         2 方法名,返回值类型,参数列表必须相同

                         3 重写的方法不能比原有的方法有更低的访问权限

                         4 重写的类不能比父类有更宽泛的异常

                         5 私有方法不能被覆盖重写,即使被覆写了,也会访问父类的

                         6 构造方法不能被重写

                         7 静态方法不能被重写

                         8 覆写是特指成员方法的覆写,和成员变量,静态变量和静态方法无关

      5:类与对象之间 的6种关系 ---继承,实现,依赖(局部变量是另外一个类对象的引用),关联(成员变量是另外一个类对象的引用),聚合(类中的集合中的元素是另外一个类对象的引用),组合

      6:final---final修饰的类不能被继承

          final修饰的方法不能被重写

          final修饰的局部变量不能二次赋值

          final修饰的成员变量必须立刻赋值

           final修饰的静态变量,就是常量了

      6:特殊类:抽象类

           接口---里面全是抽象方法的类就是接口,接口里面没有变量只有常量

           常量---大写    public static final AAA;特点:在软件的生命周期不会改变

    二:对象 new对象实例化的4个步骤---1 调用构造方法;2  开辟空间;3 复制;4 赋值

    三:抽象类    用abstract修饰的类就是抽象类

          抽象类中不一定有抽象方法,但是抽象方法一定声明在抽象类中

          没有方法体的方法叫抽象方法,就是指大括号都没有的方法,需要用abstract修饰

          一个非抽象类结继承一个抽象类,必须把所有的抽象方法实现

          抽象类和抽象方法都不能被final,因为就是被用来继承实现的,final是不能被继承和覆写的,冲突

    四:接口  接口的声明---[修饰符列表] interface 接口名 {}

        接口内容   1 常量,psf,但是接口中默认就是常量,所以psf可以被省略

              2 所有的方法都是抽象方法,所以abstract可以被省略

              3 接口中没有构造方法,接口不能被实例化

              4 接口之间可以多继承,extends

              5 一个类只能继承一个类,但是可以实现多个接口

              6 一个非抽象类,实现一个接口必须全部实现接口中的方法

    五:多态  多态发生在赋值的时候

        继承与实现---extend,implements

        向上转型---父类引用指向子类对象---把子类那个对象的内存地址赋值给父类对象的那个引用变量

        重写[email protected]

        向下转型---必须现有向上转型,然后才有向下转型

        多态的4种形式---成员方法多态:在方法声明的形参列表中的是父类的,调用传值的时候是子类的对象引用

                ---构造方法多态:构造方法声明的时候,是父类传值的时候,是子类的对象引用

                ---直接实例化多态:声明的时候是父类,实例化的时候是子类对象的引用的

                ---成员变量多态:成员变量声明为父类的,但是赋值的时候,是子类的对象引用

    六:Object---toString()每个对象对自己的一个文字描述,默认是输出对象的内存地址

          ---hashCode()返回该对象的内存地址

          ---equals()默认比较引用数据类型的内存地址,需要按照你的需求进行重写

          ---finalize()系统清理某个对象的垃圾的时候会调用的方法

---恢复内容结束---

面向对象的四大特征:抽象   继承  封装   多态

   一:面向对象中的类

      1:类的作用  代码复用

      2:类的构成---代码段 : 一个完整的大括号就是一个代码段,就代表一个独立的内存空间

           ---动态代码段 : 就是没有任何修饰的一对大括号

           ---静态代码段:用static修饰的一对大括号static{},是在加载阶段运行的代码段

           ---成员变量 : 保存在堆内存中,堆内存的大小是动态分配的.   它的调用对象名.成员变量名     成员变量属于关联关系---成员变量的值是另外一个类对象的应用

           ---静态变量 : 是属于类级别的,每个对象中的值都一样,保存在内存中的静态数据区   它的调用:类名.静态变量名

           ---局部变量 : 在方法中声明的变量是局部变量,并且声明的时候,就必须赋值    局部变量属于依赖关系 ---局部变量的值是另外一个类对象的应用

           ---常量 : 声明:public static final 数据类型 大写_ = 值 ; 在整个软件生命周期中,值不会改变

           ---成员方法 : 没有static修饰的方法叫成员方法    它的调用 : 通过对象名.成员方法名

           ---静态方法 : 用static修饰的方法   调用 : 类名.静态方法名----保存在静态代码区中

           ---构造方法 :用于在类实例化中,创建当前类对象的方法(实例化当前类对象); 默认是:公共的,静态的,没有返回值的,名字和类名一样的

           ---this对象 :1 给成员变量加前缀,然后赋值

                 2 用在构造方法中,重载调用本类中别的构造方法,this()重载调用的时候,必须写在构造方法的第一行

                 3 用于表示本类的对象,里面保存了本类的地址,this位于堆内存中第一个内存片中

                 4 在堆内存中,我们有堆内存中第一个内存片的内存地址作为整个对象的内存地址,并且命名为this

           ---super对象 : super代表的是当前子类对象中的父类型特征。

                    在子类的构造方法重载调用父类别的构造方法的时候,必须卸载第一行

                    super()和this()不能重复出现

                    super可以用来调用父类的成员属性和成员方法

      3:类的形式---系统类,类库类,普通类和内部类

            内部类分为4种 : 静态内部类

                    成员内部类

                   局部内部类

                   匿名内部类

      4:类的继承---一个类只能从一个类继承,只有成员变量和成员方法可以被继承(局部变量在方法的内部,无所谓被继承)

             ---implements  可以从多个接口实现

             ---继承中方法的覆写Override : 1 必须是有继承关系的两个类之间

                         2 方法名,返回值类型,参数列表必须相同

                         3 重写的方法不能比原有的方法有更低的访问权限

                         4 重写的类不能比父类有更宽泛的异常

                         5 私有方法不能被覆盖重写,即使被覆写了,也会访问父类的

                         6 构造方法不能被重写

                         7 静态方法不能被重写

                         8 覆写是特指成员方法的覆写,和成员变量,静态变量和静态方法无关

      5:类与对象之间 的6种关系 ---继承,实现,依赖(局部变量是另外一个类对象的引用),关联(成员变量是另外一个类对象的引用),聚合(类中的集合中的元素是另外一个类对象的引用),组合

      6:final---final修饰的类不能被继承

          final修饰的方法不能被重写

          final修饰的局部变量不能二次赋值

          final修饰的成员变量必须立刻赋值

           final修饰的静态变量,就是常量了

      6:特殊类:抽象类

           接口---里面全是抽象方法的类就是接口,接口里面没有变量只有常量

           常量---大写    public static final AAA;特点:在软件的生命周期不会改变

    二:对象 new对象实例化的4个步骤---1 调用构造方法;2  开辟空间;3 复制;4 赋值

    三:抽象类    用abstract修饰的类就是抽象类

          抽象类中不一定有抽象方法,但是抽象方法一定声明在抽象类中

          没有方法体的方法叫抽象方法,就是指大括号都没有的方法,需要用abstract修饰

          一个非抽象类结继承一个抽象类,必须把所有的抽象方法实现

          抽象类和抽象方法都不能被final,因为就是被用来继承实现的,final是不能被继承和覆写的,冲突

    四:接口  接口的声明---[修饰符列表] interface 接口名 {}

        接口内容   1 常量,psf,但是接口中默认就是常量,所以psf可以被省略

              2 所有的方法都是抽象方法,所以abstract可以被省略

              3 接口中没有构造方法,接口不能被实例化

              4 接口之间可以多继承,extends

              5 一个类只能继承一个类,但是可以实现多个接口

              6 一个非抽象类,实现一个接口必须全部实现接口中的方法

    五:多态  多态发生在赋值的时候

        继承与实现---extend,implements

        向上转型---父类引用指向子类对象---把子类那个对象的内存地址赋值给父类对象的那个引用变量

        重写[email protected]

        向下转型---必须现有向上转型,然后才有向下转型

        多态的4种形式---成员方法多态:在方法声明的形参列表中的是父类的,调用传值的时候是子类的对象引用

                ---构造方法多态:构造方法声明的时候,是父类传值的时候,是子类的对象引用

                ---直接实例化多态:声明的时候是父类,实例化的时候是子类对象的引用的

                ---成员变量多态:成员变量声明为父类的,但是赋值的时候,是子类的对象引用

    六:Object---toString()每个对象对自己的一个文字描述,默认是输出对象的内存地址

          ---hashCode()返回该对象的内存地址

          ---equals()默认比较引用数据类型的内存地址,需要按照你的需求进行重写

          ---finalize()系统清理某个对象的垃圾的时候会调用的方法

时间: 2024-08-14 01:11:29

java理论之java面向对象的相关文章

java理论之java多线程与网络编程

多线程 一 :多线程的基本概念: 1:线程是一个程序的不同的执行路径 2:进程---内存区代码去的可执行代码,main方法,主线程,真正执行的方式和代码 二:创建/启动新的线程: 1:创建---创建新线程只有一种方法:实现Runnable中的run()是创建新线程,唯一方法 (1)创建一个类,继承java.lang.Thread类:class ExThr extends Thread{} (2)创建一个普通类,实现Runable()接口:class ImpRun implements Runna

java理论之java基础

java基础分别为  数据类型,变量,操作符,流程控制,循环与函数 一.数据类型   数据类型的本质:数据类型就是规定在内存中占用内存空间的长度,用位和字节表示 基本数据类型:1数值型:整数(byte,short,int,long)和浮点型(float,double) 2字符型(char) 3布尔型(boolenan) 引用数据类型:1类(class) 2接口(interface)没有变量只有常量,里面的方法全是抽象 3数组(array) 二.变量  1.声明  据类型划分内存空间  用数据类型

Java 理论与实践: 哈希

有效和正确定义hashCode()和equals() 每个Java对象都有 hashCode() 和 equals() 方法.许多类 Override 这些方法的缺省实施,以在对象实例之间提供更深层次的语义可比性.在 Java理念和实践这一部分,Java开发人员Brian Goetz向您介绍在创建Java类以有效和准确定义 hashCode() 和 equals() 时应遵循的规则和指南. 虽然Java语言不直接支持关联数组 -- 可以使用任何对象作为一个索引的数组 -- 但在根 Object 

Java 理论与实践: 流行的原子

Java 理论与实践: 流行的原子 新原子类是 java.util.concurrent 的隐藏精华 在 JDK 5.0 之前,如果不使用本机代码,就不能用 Java 语言编写无等待.无锁定的算法.在 java.util.concurrent 中添加原子变量类之后,这种情况发生了变化.请跟随并行专家 Brian Goetz 一起,了解这些新类如何使用 Java 语言开发高度可伸缩的无阻塞算法.您可以在本文的 论坛中与作者或其他读者共享您对本文的看法.(也可以通过单击文章顶部或者底部的 讨论链接来

Java 理论与实践: 处理 InterruptedException

捕捉到它,然后怎么处理它? 很多 Java™ 语言方法,例如 Thread.sleep() 和 Object.wait(),都可以抛出InterruptedException.您不能忽略这个异常,因为它是一个检查异常(checked exception).但是应该如何处理它呢?在本月的 Java 理论与实践中,并发专家 Brian Goetz 将解释 InterruptedException 的含义,为什么会抛出 InterruptedException,以及在捕捉到该异常时应该怎么做. 这样的

Java script 中的面向对象1

Java script 中的面向对象 对象 对象是Javascript的基本数据类型,对象是一种复合值,将很多的键值对聚合在一起使用.对象可看做是属性的无序集合,每个属性都是一个名/值对.属性名其实是一个字符串.我们可以把对象看做是字符串到值的映射. 创建对象 例子代码如下: <script type="text/javascript" language="JavaScript"> ????//创建一个对象o 有两个属性 x y ????????var

Java 理论与实践: 处理 InterruptedException(转)

很多 Java™ 语言方法,例如 Thread.sleep() 和 Object.wait(),都可以抛出InterruptedException.您不能忽略这个异常,因为它是一个检查异常(checked exception).但是应该如何处理它呢?在本月的 Java 理论与实践中,并发专家 Brian Goetz 将解释 InterruptedException 的含义,为什么会抛出 InterruptedException,以及在捕捉到该异常时应该怎么做. 这样的情景您也许并不陌生:您在编写

Java 理论与实践: 非阻塞算法简介--转载

在不只一个线程访问一个互斥的变量时,所有线程都必须使用同步,否则就可能会发生一些非常糟糕的事情.Java 语言中主要的同步手段就是synchronized 关键字(也称为内在锁),它强制实行互斥,确保执行 synchronized 块的线程的动作,能够被后来执行受相同锁保护的synchronized 块的其他线程看到.在使用得当的时候,内在锁可以让程序做到线程安全,但是在使用锁定保护短的代码路径,而且线程频繁地争用锁的时候,锁定可能成为相当繁重的操作. 在 “流行的原子” 一文中,我们研究了原子

Java学习笔记&lt;3&gt;面向对象相关

面向对象的基本思想 从现实世界客观存在的事务出发来构造软件系统,并在系统的构造中尽可能运用人类的自然思维方式,如抽象.分类 继承.聚合.多态等. 类和对象的关系 对象中存储了类规定的数据类型,并且对象可以调用类的方法. java面向对象 <1>对象是java程序的核心,一切皆对象. <2>对象可以看成静态属性(成员变量)和动态属性(方法)的封装体. <3>类是创新同一类型对象的模版,定义了该类型对象应具有的成员变量及方法. 类的定义 成员变量可以用java语言的任何一种