`
ljyyanyan
  • 浏览: 6039 次
  • 性别: 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关键字

 

分享到:
评论

相关推荐

    Java程序设计基础篇(第8版)第五章编程题答案

    **Java程序设计基础篇(第8版)第五章编程题答案** 在学习Java编程时,实践是提升技能的关键。本书的第五章可能涵盖了基础至进阶的编程概念,旨在帮助读者掌握面向对象编程的核心思想。编程题是检验理解并深化理论...

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

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

    Java语言程序设计与数据结构(基础篇)第5章课后习题代码chapter5.rar

    第五章的课后习题代码提供了实践机会,帮助读者巩固理论知识,提高编程技能。 在Java中,数据结构主要包括数组、链表、栈、队列、树和图等。数组是最基本的数据结构,它允许以固定大小存储同类型的数据。链表则通过...

    java语言程序设计基础篇第十版第十三章练习标准答案.pdf

    本资源提供了 Java 语言程序设计基础篇第十三章的练习标准答案,涵盖了面向对象编程、集合框架、泛型、方法重写和数组操作等多个知识点。这将有助于读者更好地理解 Java 语言的基本概念和编程技术。

    完整版 零基础学Python课件07 第7章 面向对象程序设计.ppt

    Python 面向对象程序设计基础知识点 面向对象程序设计是 Python 编程语言中的一种编程范式,它提供了一种组织代码的方式,使得代码更加模块化、可维护和可重用。面向对象程序设计基于三个基本概念:类、对象和继承...

    Java语言程序设计第10版基础篇 第四章答案

    《Java语言程序设计第10版基础篇》是学习Java编程的重要教材,第四章通常涵盖了Java的基本语法和核心概念。本资源提供了该章节的课后习题答案,旨在帮助学习者检验自己的理解并深化对Java知识的掌握。下面将详细阐述...

    JAVA语言程序设计-第六章 面向对象的程序设计概念

    **描述解析:**描述中给出的链接可能指向一篇有关该主题的博客文章,但实际内容无法直接获取,因此我们将基于通常的第六章面向对象编程的内容进行讲解。 **标签解析:**"源码"和"工具" 源码可能涉及本章中的实例...

    面向对象的软件构造.pdf

    这四个核心概念为理解面向对象编程提供了基础。 1. **结构化方法**:指的是如何组织和设计软件系统的一种方式,它通过将复杂问题分解成更小、更容易管理的部分来实现。在面向对象编程中,这种结构化通常是通过类和...

    java语言程序设计第八版基础篇编程题答案

    第八版的基础篇教材通常涵盖了Java语言的核心元素,包括类、对象、数据类型、控制结构、数组、字符串、异常处理、输入/输出以及简单的面向对象编程概念。本压缩包中的"java语言程序设计第八版基础篇编程题答案"提供...

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

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

    c++面向对象程序设计杜茂康 课后习题代码及结果

    【C++面向对象程序设计】本篇主要涉及C++的基础知识和面向对象编程的基本概念,通过杜茂康老师的课程习题来深入理解这些概念。 1. **C++基础**: - **数据输入输出**:在实验一中,通过`cin`和`cout`进行数据的...

    Java语言程序设计与数据结构(基础篇)第9章课后习题代码chapter9.rar

    在本压缩包“chapter9.rar”中,包含的是关于Java语言程序设计与数据结构基础篇的第9章课后习题代码。这个章节通常会深入探讨数据结构与算法,这是编程学习中的核心部分,特别是对于Java这样的面向对象编程语言而言...

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

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

    Java语言程序设计与数据结构(基础篇)第8章课后习题代码chapter8.rar

    在本压缩包“Java语言程序设计与数据结构(基础篇)第8章课后习题代码chapter8.rar”中,包含的是关于Java编程语言与数据结构基础篇的第八章课后习题解答代码。这个资源对于正在学习Java编程,尤其是对数据结构有...

    Java语言程序设计-基础篇-中文ppt-第十章.ppt

    【Java语言程序设计-基础篇】第十章主要探讨了面向对象编程的核心概念,特别是如何利用这一范式有效地解决问题。在本章中,作者Liang强调了面向对象编程的优势,并介绍了几个关键的语言特性,以帮助读者深入理解并...

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

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

    java程序语言设计 梁勇 第十版(基础篇+进阶篇) 课后习题答案

    Java程序语言设计是Java开发者学习过程中的一本经典教材,梁勇教授的第十版结合了基础篇与进阶篇,深入浅出地讲解了Java编程的核心概念和技术。此压缩包包含了该书的课后习题答案,对于正在学习或已经学过这本书的...

    Java语言程序设计(基础篇)资料

    Java语言程序设计是编程学习的重要领域,特别是在基础篇中,主要涵盖了Java编程的基本概念、语法和常用编程技巧。本资料出自梁勇与戴开宇译的《Java语言程序设计》第十版,是一份深入浅出的Java入门教程。在"book10...

    JAVA面向对象编程(孙卫琴)07.pdf

    根据提供的文件信息,本篇知识点将专注于JAVA面向对象编程的相关概念、特点以及如何通过书籍《JAVA面向对象编程》(孙卫琴著)学习该编程范式。面向对象编程(OOP)是一种编程范式,它使用“对象”来设计软件程序。...

    Java程序设计基础篇(第8版)第三章编程题答案

    9. **面向对象概念**:虽然深入的面向对象编程通常在后续章节讨论,但基础篇可能已经引入了类和对象的概念,例如创建简单的类,理解封装、继承和多态。 10. **练习题设计**:编程题通常会从简单到复杂,涵盖以上...

Global site tag (gtag.js) - Google Analytics