`

J2SE自学(八)——面向对象之封装

阅读更多
1、封装定义:隐藏属性,方法与方法实现细节的过程称为封装(这个定义并不是很准确,但是可以这样去理解),可以从两个方面理解:
   1)、隐藏属性和方法。
   2)、隐藏方法实现细节过程。


补充:
封装的优点:
(1)、隐藏类的实现细节;
(2)、让使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作;(因为如果直接对属性操作时没有限制的,比如年龄,如果直接调用属性则可以设置负值!(比如:-10),而用方法来访问可以设置一些限制)
(3)、便于修改,增强代码的可维护性;


2、封装的实现需要的知识:
   1)、包
   2)、访问修饰符
   3)、方法

3、子类可以拥有父类所有public或者protected修饰属性和方法(这里没有强调是否在同一个类中以及是否在同一个包中),如果这个子类和父类在同一个包中,则也可以拥有父类所有默认的属性和方法!但是如果不在同一个包中,则不会拥有,那更别说private修饰的属性和方法了


4、在项目中用的最多的修饰符就是public和private,而protected和默认修饰符用的相对较少!

5、实体类(entity):又称为值对象(VO——Value Object)或者数据传输对象(DTO—— Data Transfer Object )。我们编写应用程序的目的就是——处理数据,而数据存储在数据库中,而表中的数据如何在应用程序中体现呢?那就是一个一个的实体类,而且这个表名和实体类名是一致的,而且表中有多少个字段,则在实体类中就有多少个属性,并且字段名和属性名也是一致的,同时在这个实体类中添加相应的public修饰的方法(也就是getters和setters)。
   实体类中应该有哪些内容?
   1)、私有的属性(与数据库中的字段一一对应)
   2)、对这些属性有相应的getters和setters方法
   3)、无参的构造方法和有所有参数的构造方法(这两个构造方法都是私有的!),当然也可以更具业务需求添加相应的构造方法
   4)、在练习或者测试以及打印控制台的时候,可以将toString方法重写——这一点不要求
   5)、生成equals方法(尤其是在框架的时候,至于hashCade方法现在在初始学习阶段不是很要求)
   其实实体类在运用数据库的知识体现的更加明显


6、透明的:只关心结果,至于内部具体的执行过程或者细节是不关心的!其实这里说的“透明的”也是看不见的(也就是封装),而这个看不见是指具体的执行细节过程!但是结果我们是可以看见的!这就是“透明的”。如果在以后的学习编程过程说XXX是“透明的”,意思就是放心大胆的用吧,至于是如何的实现(这个实现是由封装实现的)的不用我们管!


7、客户端与服务器端关系:
   1)、狭义的客户端与服务器:一个指的是软件(如应用程序)一个指的是硬件(如数据库)
   2)、广义的客户端与服务器:比如现在有两个类A和B,在某个业务中,类A调用类B,则类A就是客户端,类B就是服务器;在另外一个业务中,类B调用类A,则类B就是客户端,类A就是服务器。于是就得出了,说XXX是客户端,XXX是服务器,一定要明确语义环境!(因为二者是相对的)


8、final关键字:最终的
   可以修饰:
   1)、类:表示此类不能被继承,如SUN提供的String类、Integer类、Boolean类等
   2)、属性:①、必须赋初值;②、一般为public修饰;③、变量名全为大写,而且此时变量的称呼改变了——常量
   3)、方法:表示此方法不能被重写


9、static关键字:静态的,唯一的,static修饰的属性和方法都位于方法区中!
   可以修饰:
   1)、属性:表示此属性是类属性(或者类变量),解决对象内存空间浪费。访问该属性的时候用“类名.属性名”(而不用对象名.属性名)
   补充:一般情况下我们将属性修饰为fianl的时候同时也加上static这个关键字(位于final之前),但是反之,是不可以的
   2)、方法:表示此方法是类方法。
       ①、静态方法中只能访问静态变量,不能访问普通变量,同时也不能调用非静态方法
       ②、静态方法中不能使用this与super关键字


10、静态块:是系统运行时自动运行,只能调用静态变量和其他静态方法(SUN不推荐使用)
    static{
    System.out.println("这个就是静态块! ") ;
}

   静态块是类加载的时候执行的,而构造方法(或者可以成为构造块)是对象创建的时候执行的!
分享到:
评论

相关推荐

    j2se学习笔记——课堂笔记

    **J2SE学习笔记——接口与相关程序** Java 2 Platform, Standard Edition(J2SE)是Java平台的核心部分,提供了开发和运行桌面应用程序、Web应用程序和服务的基础。本笔记主要聚焦于J2SE中的接口(Interface)概念...

    java零基础自学之 J2SE 之 面向对象编程

    面向对象编程是Java编程语言的核心特性,特别是在J2SE(Java Standard Edition)环境中。面向对象编程(OOP)的理念是模拟现实世界中的实体,通过创建类来定义对象,并利用对象的属性和行为来解决问题。这一理念自60...

    java培训J2SE之面向对象编程.pptx

    java培训J2SE之面向对象编程.pptx

    J2SE宏观性总结

    它的语法简洁明了,强调代码的可读性和可维护性,支持封装、继承和多态三大面向对象特性。Java的关键字、数据类型、控制结构、异常处理等都是学习J2SE的基石。 在J2SE中,类库是极其重要的组成部分。它包括了大量...

    张孝祥J2SE加强自学笔记(48-56)

    【张孝祥J2SE加强自学笔记(48-56)】主要涵盖了类加载器、代理类和动态类创建等Java核心知识点。 48、类加载器的问题实验分析: 在Java中,类加载器是负责查找并加载类的机制。在Web应用中,有多种类加载器,如...

    J2se 个人开发自学资料

    ### J2SE个人开发自学资料知识点总结 #### 一、Java EE 应用与框架介绍 **1. Java EE 概述** - **Java EE 的分层结构:** - **表示层(Presentation Layer):** 主要负责用户界面的显示,如网页、图形用户界面等...

    Java自学之路——(精华版)

    Java自学之路——精华版 Java作为一种广泛使用的编程语言,对于初学者来说,有着丰富的资源和广阔的学习路径。本文将提供一份详细的自学指南,帮助你高效地掌握Java编程技能。 一、选择合适的自学资源 在开始Java...

    SSD3 面向对象程序设计 pdf

    卡耐基梅隆大学的SSD3课程,即面向对象程序设计,主要的教学目标是帮助学生通过面向对象的设计和实现来掌握问题解决的方法。该课程特别强调问题分析与解决方案的设计、文档编写和程序实现。SSD3教材内容覆盖了面向...

    J2SE阶段项目案例

    本项目案例——动物特性的面向对象描述,旨在通过实际操作让学员熟练运用封装、继承和多态这三大面向对象的特征。这个项目设计了一种模拟不同动物行为的方式,包括狗、猫和青蛙等,来帮助学习者理解并应用Java中的类...

    java 入门教程课件——j2se

    Java是世界上最流行的编程语言之一,尤其在企业级应用开发领域占据主导地位。J2SE(Java 2 Standard Edition)是Java平台的核心部分,为桌面应用提供了基础框架和运行环境。本套“Java入门教程课件”针对初学者,...

    java课程设计大作业-用J2SE写的一个坦克大战小游戏

    java课程设计大作业——用J2SE写的一个坦克大战小游戏java课程设计大作业——用J2SE写的一个坦克大战小游戏java课程设计大作业——用J2SE写的一个坦克大战小游戏java课程设计大作业——用J2SE写的一个坦克大战小游戏...

    面向对象程序设计ppt

    1. 封装:这是面向对象编程的基础,它隐藏了对象内部的实现细节,只对外暴露有限的接口,使得代码更安全,易于维护。在Java中,通过访问修饰符(public, private, protected)来控制类成员的可见性,实现封装。 2. ...

    j2se6.rar_J2se6

    《J2SE6详解——Java开发者的必备指南》 J2SE6,全称为Java 2 Platform, Standard Edition 6,是Java平台标准版的第六个主要版本,它为Java开发者提供了广泛的功能和改进,旨在提升开发效率和应用程序的性能。这个...

    J2SE资料

    3. **类与对象**:讲解面向对象编程的基本概念,包括类的定义、对象的创建、封装、继承和多态性。 4. **异常处理**:如何使用try-catch-finally语句处理程序运行时可能出现的错误。 5. **输入/输出流**:包括基本的...

    手工完成java项目(一)——J2SE项目

    【标题】"手工完成java项目(一)——J2SE项目"揭示了这个压缩包文件是关于使用Java标准版(J2SE)进行项目开发的教程。在Java领域,J2SE代表Java 2 Platform, Standard Edition,它是Java平台的核心,主要用于桌面...

    面向对象程序设计java课件

    面向对象程序设计是Java的核心特性,它是一种编程范式,旨在提供更加模块化、易于维护的代码结构。Java以其简洁的语法、面向对象的特性、跨平台的能力以及强大的安全性受到广大开发者的青睐。本课件适合初学者,通过...

    工厂模式的小例子——j2sE

    它的主要目的是通过将对象的创建过程封装起来,使代码更加灵活,易于扩展,同时也解耦了对象的实例化与使用。在这个名为"工厂模式的小例子——j2SE"的项目中,开发者已经实现了一个基于Java 2 Standard Edition ...

    J2SE复习源代码

    面向对象编程是Java的基础,包括封装、继承和多态。封装使数据和方法结合成一个整体,保护数据安全;继承使得子类可以扩展父类的功能;多态则增强了代码的灵活性和可扩展性。理解类、对象、构造函数、接口、抽象类...

Global site tag (gtag.js) - Google Analytics