`
ljyyanyan
  • 浏览: 5689 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

第五章 面向对象(基础篇)

 
阅读更多

第五章   面向对象(基础篇)

一、面向对象的基本概念:封装性、继承性、多态性

二、类与对象:

          ①类:模板,共性         对象:具体,个性

          ②类的定义:       class 类名称{

       数据类型属性;  //声明成员变量

      

       //定义方法内容

       public 返回值数据类型方法名称(参数1,参数2){

              程序语句;

              [return 表达式;]

}

}

                                  ③对象的创建:类名对象名称 =  null    //声明对象

                                                                             对象名称 =  new  类名()     //实例化对象

 

类名对象名称 =  new  类名()    //简写

所有的对象名称都在栈内存中保存(保存的实际是其对应的堆内存空间的访问地址)

                                            而对象的具体内容则保存在对应的堆内存之中,

                                           必须用new开辟堆内存空间

                          ④访问对象中的属性和方法:

                                      访问属性:对象名称.属性名

                                      访问方法:对象名称.方法名()

                          PS     1、引用数据类型就是指一段堆内存空间可以同

                                                 时被多个栈内存指向

                                            2、引用传递:将一个堆内存空间的使用权给多

个栈内存空间,每个栈内存空间都可以修改

堆内存的内容

                                            3、一个栈内存空间只能指向一个堆内存空间,

如果要指向其他的堆内存空间,则必须先断

开已有的指向才能分配新的指向

                                           4Java本身提供垃圾收集机制(GC

             三、封装性:

                              ①含义:指对外部不可见

                              ②关键字:private

                              ③关于private的补充说明:

                           1、类中全部属性必须封装,封装之后的属性必

                                                    须通过settergetter方法进行访问

                                              2private声明的属性和方法只能在类内部调用

                                              3、调用本类中的方法,可以直接写方法名调用,

                   也可以使用“this.方法名()”强调

 

 

四、构造方法:

                 ①作用:初始化,值传递

                 ②定义格式:     class 类名称{

                                                               //无返回值声明,构造方法名与类名称一致

                                                               访问权限类名称(数据类型参数…){

                                                               程序语句;

                                                                   //构造方法没有返回值

                                                       }

                                       }

                              PS     1、调用new实例化对象时才会调用构造方法

                                              2、无明确声明时,Java在编译时会自动生成一

                                                    个无参构造方法

                                              3、已明确声明一个构造方法时,程序将不会生

                                                    成默认构造方法

                                              4、与普通方法一样,构造方法是可以重载的

             五、匿名对象

                              ①定义:没有明确地给出名称的对象

                              ②注意:       1、一般匿名对象只使用一次

                                                    2、只在堆内存中开辟空间,而不存在栈内存

                                                          的引用

                                                    3、实际开发中通常作为其他实例化对象的参

                                                          数传递

            

 

 

六、String

                              ①实例化String对象的方法

1、直接为String赋值(实质上是把一个在堆中

开辟好的堆内存空间的使用权给它,好处是当字符串内容相同时,多个名称指向同一个空间引用,不再开辟新的堆内存空间)

例:String str = “hello”;

2、用标准的new调用构造方法实例化(不管如

何都会再开辟一个新的空间,原不用空间成为垃圾空间)

例:String str = new String(“hello”);

                 String的比较

                                 1、地址比较:==

                                  2、内容比较:equals()

                 ③字符串的内容不可改变

                                  1、字符串的内容一旦声明则不可改变

                                  2、一个String对象内容的改变实际上是通过内

存地址的“断开-连接”变化完成的,而本身

字符串中的内容并没有任何变化

 

 

 

七、引用传递及基本应用

                 ①定义:将堆内存空间的使用权交给多个栈内存空间

                 ②在对象引用传递上也可以在一个类中接收自己本类的对

          象,而且接收完后可以方便地通过此对象直接进行本类中封装属性        的访问(此种引用方式的传递在关于对象的比较操作时才会经常使用)

 

 

八、this关键字

                 ①表示类中的属性:this.name = name;

                 ②强调调用本类中的方法:this.getInfo();

                 ③表示当前对象:Person p1 = this;

                 ④调用本类的构造方法:this(); 

1、使用this()调用构造方法必须放在构造方法的

      首行

2、程序中至少要存在一个构造方法是不用this

      调用其他构造方法的,一般都会将无参构造

      方法作为出口,即在参构造方法中最好不要

      再去调用其他构造方法

 

 

 

九、static关键字

                 ①使用static声明属性

                                  1、全局属性(静态属性):被所有对象共享

                                  2、类属性:可以直接由类名调用

                 ②使用static声明方法

                                  1、类方法:可以直接由类名调用

                                  2、非static方法可以调用static方法,但static

                                       方法不能调用非static方法

                 ③理解main方法

                                  public:表示此方法可以被外部调用

                                  static:表示此方法可以由类名称直接调用

                                  void:主方法是程序的起点,不需要返回值

                                  main:系统规定好默认调用的方法名称

                                  String args[]:表示运行时的参数

                 Java中常用的内存区域

                                  1、栈内存空间:保存所以对象名称(地址)

                                  2、堆内存空间:保存每个对象具体属性内容

                                  3、全局数据域:保存static类型的属性

                                  4、全局代码域:保存所有的方法定义

 

 

 

十、代码块

                 ①定义:是指使用{}括起来的一段代码

                 ②分类:

                                  1、普通代码块:直接在方法或语句中定义,定

                                       义在其中的是局部变量

                                  2、构造块:直接在类中定义,每次实例化都会

                                       执行

                                  3、静态代码块:使用static关键字声明的,(只

                                       执行一次)

                 ③优先级:

                            静态代码块>主方法>构造块>构造方法

 

 

十一、构造方法私有化

                 ①实例化方法:在内部产生本类的实例化对象

                 ②意义:只要将构造方法私有化,就可以控制实例化对象

                   的产生(单例设计模式)

 

 

十二、对象数组

                 ①定义:包含了一组相关对象的集合

                 ②动态初始化:数组先开辟空间,使用数组的每一个对象

                   时都要分别赋值

                            Person per[] = new Person[2];

                                  per[0] = new Person(“张三”);

                                  per[1] = new Person(“李四”);

③静态初始化:

               Person per[] ={ new Person(“张三”),new Person(“李四”)};

 

 

 

十三、内部类

                 ①定义:在类的内部定义的类

                 ②声明格式:     标识符 class 外部类的名称{

                                                               //外部类的成员

                                                               标识符 class 内部类的名称{

                                                                      //内部类的成员

                                                               }

                                                    }

                 ③优点:可以方便地访问外部类中的私有属性,代码简单

                 ④使用static定义内部类:用static声明的内部类变成了外

                   部类,但是用static声明的内部类不能访问非static的外

                   部类属性

                 ⑤在外部访问内部类:

                                  外部类.内部类内部类对象 = 外部类实例.new 内部类();

                                   生成的class文件是Outer$Inner.class的形式

                 ⑥在方法中定义内部类:在方法中定义的内部类不能直接

                   访问方法中的参数,除非参数前加上final关键字

 

分享到:
评论

相关推荐

    设计模式:可复用面向对象软件的基础--详细书签版

    第5章 行为模式 147 5.1 chain of responsibil ity(职责链) —对象行为型模式 147 5.2 command(命令)—对象行为型 模式 154 5.3 interpreter(解释器)—类行为型 模式 162 5.4 iterator(迭代器)—对象...

    《Java语言程序设计——基础篇》第五章方法示例.zip

    《Java语言程序设计——基础篇》是Java语言的经典教材,中文版分为《Java语言程序设计基础篇》和《Java语言程序设计进阶篇》主要介绍语法结构、面向对象程序设计基础知识到面向对象程序设计、图形用户界面设计、异常...

    .NET4面向对象编程漫谈资源包_基础篇.part5

    《.NET 4.0面向对象编程漫谈》资源包,包含《基础篇》的所有源码,全书目录,前言和序等PDF文档。 共6个分卷RAR压缩包,这是第5部分。 获取更多资源及与作者交流,请访问金旭亮个人博客: ...

    Java技术教程.基础篇

    第五章 java语言中的面向对象特性 第六章 数组 第七章 字符串处理 第八章 异常处理 第九章 java输入、输出及文件操作 第十章 对象串行化 第十一章 线程 第十二章 图形用户界面 第十三章 用Swing创建用户界面 第十四...

    精通Java:JDK、数据库系统开发Web开发(实例代码)

    第5章 Java面向对象程序设计(上) 第6章 Java面向对象程序设计(下) 第7章 Java异常处理机制 第8章 Java反射机制 第9章 数据结构与集合类 第3篇 图形用户界面 第10章 Java Swing(上) 第11章 Java Swing(下) 第...

    老王Python基础+进阶+项目篇(高清无密)

    一、Python基础概述 二、Python基础教程 老王Python教程 基础篇 基础篇1-福利课python先入为主上 基础篇2-福利课-python...项目篇12-tornado项目篇第五节 项目篇13-tornado第六节 项目篇14-整站爬虫 项目篇15-聊天室

    零基础学Java Web开发

     第3章 Java面向对象编程  第二篇 JSP基本知识  第4章 JSP基本语法  第5章 JSP内置对象  第6章 JSP与JavaBean  第7章 JSP与JDBC  第8章 Servlet编程  第9章 Servlet编程  第10章 用户自定义标签 ...

    ActionScript 3.0开发技术大全(第一部分)

     第5章 ActionScript3.0中的String对象  第6章 ActionScript3.0中的Array类型  第7章 ActionScript3.0中的日期和时间  第8章 ActionScript3.0异常处理 第3篇 ActionScript3.0可视化编程  第9章 可视化编程...

    ASP.NET从入门到精通

    第3章 面向对象设计基础 第4章 ASP.NET 的网页代码模型及生命周期 第二篇 ASP.NET窗体控件 第5章 Web 窗体的基本控件 第6章 Web 窗体的高级控件 第三篇 数据操作篇 第7章 数据库与 ADO.NET 基础 第8章 Web 窗体的...

    visual C++从初学到精通源代码

    第3章 面向对象程序设计基础 第4章 Visual C++调试技术 第二篇 Windows编程 第5章 Windows程序设计 第6章 MFC编程概述 第7章 MFC消息映射与消息传递机制 第8章 图形编程 第9章 位图编程 第10章 对话框 第11章 应用...

    ASP.NET 3.5 开发大全

    第3 章面向对象设计基础 第4 章ASP.NET 的网页代码模型及生命周期 第二篇ASP.NET窗体控件 第5 章Web 窗体的基本控件 第6 章Web 窗体的高级控件 第三篇数据操作篇 第7 章数据库与ADO.NET 基础 第8 章Web 窗体的数据...

    从面向对象到SOA.rar

    《.NET 4.0面向对象编程漫谈》分为《基础篇》与《应用篇》两本,由电子工业出版社博文视点公司出版,预计于2010年11月上市。 读者可访问作者个人博客或通过邮件相互交流。 目录 第24章 从面向对象到SOA .... 1 ...

    面向对象技术与UML课件及源代码-by 南邮-陈杨

    本书为中南大学精品教材立项项目,分为上下两篇共21章,涵盖了面向对象技术中Java开发环境配置、程序设计基础、面向对象原理以及UML的知识。本书使用的开发环境是JDK 1.6+Eclipse 3.3+Rational Rose 2003,逐步引领...

    计算机与软件工程知识篇视频.zip

    目录网盘文件永久链接 第1章 数据结构与算法基础.zip 第2章 编译原理.zip 第3章 操作系统.zip 第4章 系统开发与软件工程.zip 第5章 数据库.zip 第6章 多媒体.zip 第7章 组成原理与体系结构....第12章 面向对象技术.zip

    java从最基础入门到精通pdf

     第5章 类和对象  第6章 继承  第7章 接口和内部类  第8章 面向对象编程  第9章 异常处理  第10章 线程 第三篇 界面篇  第11章 图形编程  第12章 事件处理  第13章Swing用户界面设计

    C++程序设计 谭浩强 电子版,文字版非扫描

    C++C++程序设计 中国高等院校计算机基础教育课程体系规划材 谭浩强 编著 总 目 录 ...第 4篇 面向对象的程序设计 第 11 章 继承与派生 第 12 章 多态性与虚函数 第 13 章 输入出流 第 14 章 C++C++C++

    Python大学教程 第6章 使用模块

    第一部分为基础篇(第1~5章),主要介绍Python的基础语法,包括Python语言的概述,Python的基本数据类型、变量、运算符、表达式等概念,三种程序的基本控制结构,函数,列表、元组、集合与字典四种简单数据结构。...

    PHP5面向对象初步_刀客羽朋版

    我们假设记者没有任何面向对象的知识,即使你是第一次听说OOP,也可以读懂这篇文章。但我希望你对PHP有一些了解。在后面我们将使用一些例子,来逐渐分析PHP5的OO基础。面向对象只解决了两个问题,代码的可扩展性,...

    易学C++[C++著名的基础书籍潘嘉杰著]

    内存里的快捷方式——指针 84 第9章 自己设计的箱子——枚举和结构 98 第二篇 实战程序设计 第10章 高效阅读程序代码 119 第11章 调试程序代码技巧 127 第12章 编写程序技巧 150 第三篇 面向对象的程序...

    C++编程思想(第2版)_第1卷_标准C++引导

    他是C++标准委员会拥有表决权的成员之一,曾经写过另五本面向对象编程书籍,发表过150篇以上的文章,是多本计算机杂志的专栏作家。Eckel开创Software Development Conference的C++、Java、Python等多项研讨活动。...

Global site tag (gtag.js) - Google Analytics