`
royakon
  • 浏览: 8402 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

一切都是对象笔记-第二天

    博客分类:
  • java
阅读更多

2.4 创建新的数据类型 类(class)

如果一切都是对象,那么是什么决定了某一类对象的外观与行为呢?换句话说,是什么确定了对象的类型?class这个关键字表示“我准备告诉你一种心类型的对象的确定”。

class ATypeName {
    /* Class body goes here */
}
 

 

一旦定义了一个类,就可以在类中设置两种类型的元素:

  1. 字段:有时被称为数据成员
  2. 方法:又是被称为成员函数

如何引用一个对象的成员。具体的实现为:在对象引用的名称之后紧接着一个句点(.),然后再接着是对象内部的成员名称:

objectReference.member
 

若类的某个成员是基本数据类型,即使没有进行初始化,Java也会确保它获得一个默认值。然而确保初始化的方法并不适用与”局部“变量。

2.5 方法,参数,返回指

Java的方法决定了一个对象能够接收什么样的消息。方法的基本组成部分包括:名称,参数,返回值,方法体。

ReturnType methodName ( /* Argument list */ ) {
    /* Mehton body */
}
 

Java中的方法只能作为类的一部分来创建。方法只有通过对象才能被调用。
这种调用方法的行为通常被称为发送消息给对象。面向对象的程序设计通常简单地归纳为:向对象发送消息

2.5.1 参数列表

方法的参数列表指定要传递给方法什么样的消息。这写信息像Java中的其他信息一样,采用的都是对象形式。像Java中任何传递对象的场合一样,这里传递都的实际上也是引用(基本数据类型除外),并且引用的类型必须正确。

你可以定义方法返回任意想要的类型,如果不想返回任何值,可以指示此方法返回void(空)

2.6 构建一个Java程序的其他要点

2.6.1 名字可见性

Java采用了一种全新的方法来避免命名冲突的问题。为了给一个类库生成不会与其他名字混淆,冲突的名字,Java设计者希望程序员反过来使用自己的Internet域名,因为这样可以保证它们肯定是独一无二的。

2.6.2 运用其他构件

如果想在自己的程序里使用预先定义好的类,那么编译器就必须知道怎么定位它们:

  1. 这个类可能就在发出调用的那个源文件中,在这种情况下,就可以直接使用这个类。
  2. 如果那么类位于其他文件中,可以使用关键字import来准确的告诉编译器你想要的类是什么。
import java.util.ArrayList;
import java.util.*;
 

 

2.6.3 static 关键字

有两种情况:

  1. 只想为某特定域分配单一存储空间,而不去考虑究竟要创建多少对象,甚至根本就不创建任何对象。
  2. 希望某个方法不与包含它的任何对象关联在一起。也就是说,即使没有创建对象,也能够调用这个方法。

通过static关键字可以满足这两方面的需要。

class StaticTest {
    static int i = 47;
}
StaticTest st1 = new StaticTest();
StaticTest st2 = new StaticTest();
 

以上两个对象共享同一个 i ,因此 st1.i st2.i 的值都为 47。

引用static 变量有两种方法:

  1. 可以通过一个对象去定位它 st2.i
  2. 可以通过类名直接引用 StaticTest.i

类似逻辑也应用与静态方法。

尽管当static作用于某个字段时,肯定会改变数据创建的方式,但是如果static作用于某个方法,差别却没有那么大。static方法的一个重要用法就是在不创建任何对象的前提下就可以调用它。

本文首发自:一切都是对象笔记-蜘蛛网间

0
1
分享到:
评论

相关推荐

    Python学习笔记--皮大庆.pdf.zip

    【Python学习笔记--皮大庆.pdf.zip】是一个针对初学者的Python编程教程,源自英文书籍《How to think like a computer scientist》。这本书以易懂的方式介绍了Python语言的基础知识,旨在帮助没有编程背景的人快速...

    带书签_Python 学习笔记-雨痕-第二版

    带书签_Python 学习笔记-雨痕-第二版,本笔记分为三个部分(Python语言、标准库和扩展库)以及附录。其中,Python语言部分包括基本环境、内置类型、表达式、函数、迭代器、模块、类、异常、装饰器、描述符和元类。 ...

    02-第二天笔记.md

    02-第二天笔记.md

    冰河的渗透实战笔记-冰河.pdf

    冰河整理的全网首个开源的以实战案例为背景的渗透实战笔记,全书共442页,共计37万字(不计空格)。整本书的内容涵盖:Kali基础、渗透工具、木马制作、钓鱼链接生成、爆破密码、内存溢出攻击、web渗透、数据提权、...

    JAVA学习笔记-第七章 面向对象中级(二)

    JAVA学习笔记-第七章 面向对象中级(二)

    HotApp云笔记 - 精品开源demo-基于免费API(源代码+截图)

    HotApp云笔记 - 精品开源demo-基于免费API(源代码+截图)HotApp云笔记 - 精品开源demo-基于免费API(源代码+截图)HotApp云笔记 - 精品开源demo-基于免费API(源代码+截图)HotApp云笔记 - 精品开源demo-基于免费API(源...

    DAMA学习笔记-第01-17章细化第5章数据建模较多内容

    DAMA学习笔记-第01-17章细化第5章数据建模较多内容

    Flask快速入门精品课程-笔记-123.zip

    Flask快速入门精品课程-笔记-123.zipFlask快速入门精品课程-笔记-123.zipFlask快速入门精品课程-笔记-123.zipFlask快速入门精品课程-笔记-123.zipFlask快速入门精品课程-笔记-123.zipFlask快速入门精品课程-笔记-123...

    Java基础每日复习笔记-JavaSE高级阶段.2020-10-13-211312.edf

    Java基础每日复习笔记-JavaSE高级阶段.2020-10-13-211312.edf

    概率论与数理统计-手写笔记-期末考试复习

    概率论与数理统计-手写笔记-期末考试复习概率论与数理统计-手写笔记-期末考试复习概率论与数理统计-手写笔记-期末考试复习概率论与数理统计-手写笔记-期末考试复习概率论与数理统计-手写笔记-期末考试复习概率论与...

    Java学习笔记-面向对象-001-面向对象概括

    在面向对象编程中,对象是软件的核心,它们包含了数据(属性)和操作这些数据的方法(行为)。这种思维方式使得程序设计更接近现实世界的问题解决方式,更具可读性和可扩展性。 类是面向对象编程的基础。类是对具有...

    Redis笔记-尚硅谷周阳V1.3-脑图

    根据《Redis笔记-尚硅谷周阳V1.3》整理,脑图、思维导图xmind

    统计学习方法笔记-基于Python算法实现源码.zip

    统计学习方法笔记-基于Python算法实现。统计学习方法笔记-基于Python算法实现 所有代码均可直接运行。统计学习方法笔记-基于Python算法实现。统计学习方法笔记-基于Python算法实现 所有代码均可直接运行。统计学习...

    《技术人的管理之路》读书笔记 -思维导图

    《技术人的管理之路》读书笔记 --思维导图 《技术人的管理之路》读书笔记 --思维导图 《技术人的管理之路》读书笔记 --思维导图 《技术人的管理之路》读书笔记 --思维导图 《技术人的管理之路》读书笔记 --思维导图 ...

    嵌入式Liunx应用程序开发笔记-代码.zip

    嵌入式Liunx应用程序开发笔记-代码.zip嵌入式Liunx应用程序开发笔记-代码.zip嵌入式Liunx应用程序开发笔记-代码.zip嵌入式Liunx应用程序开发笔记-代码.zip嵌入式Liunx应用程序开发笔记-代码.zip嵌入式Liunx应用程序...

    JAVA笔记-第二章.rar

    在本压缩包“JAVA笔记-第二章.rar”中,我们可以预见到这是一份关于Java编程语言的详细学习资料,特别是集中在第二章的内容。虽然没有具体的标签来指明讨论的主题,但通常Java的学习路径会涉及基础语法、面向对象...

    通信电子电路(高频-模电PLUS)-手写笔记-期末考试复习

    通信电子电路(高频-模电PLUS)-手写笔记-期末考试复习通信电子电路(高频-模电PLUS)-手写笔记-期末考试复习通信电子电路(高频-模电PLUS)-手写笔记-期末考试复习通信电子电路(高频-模电PLUS)-手写笔记-期末考试...

    新版Android开发教程&笔记--基础入门

    新版Android开发教程&笔记--基础入门二 新版Android开发教程&笔记三--环境搭建与解析 新版Android开发教程&笔记四--Dalvik ADB 新版Android开发教程+笔记五--模拟器、应用1、2 新版Android开发教程+笔记六--应用3、4...

    Jsp-Servlet复习笔记-----第3章 Servlet技术 - 堕落天使 - JavaEye技术网站.mht

    Jsp-Servlet复习笔记-----第3章 Servlet技术 - 堕落天使 - JavaEye技术网站.mhtJsp-Servlet复习笔记-----第3章 Servlet技术 - 堕落天使 - JavaEye技术网站.mht

Global site tag (gtag.js) - Google Analytics