当前位置:首页 » 《关注互联网》 » 正文

初识JAVA-面向对象的三大特征之封装

18 人参与  2024年12月19日 14:01  分类 : 《关注互联网》  评论

点击全文阅读


1.面向对象

1.1 什么是面向对象

面向对象是一种解决问题的思想,它把计算机程序看作是各种对象组合起来的。每个对象都有自己的数据(属性)和行为(方法),主要依靠对象之间的交互来解决和实现问题。Java是一门纯面向对象的语言(Object Oriented Program,简称OOP)。

1.2 面向对象的三大特性

面向对象的三大特性:封装继承多态

简单来说:

1.将数据和操作数据的代码封装在一起,形成一个对象。

2.通过继承提取对象之间的共性,让新对象也可以拥有老对象的特性,实现代码的复用。

3.多态运行不同对象执行同一种操作产生各自不同的效果,增加了代码的灵活性。

4.抽象让你只关注对象的接口,而不用关心内部实现,简化复杂性。

本次我们主要陈述封装。

2.封装

2.1 什么是封装

封装是将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现的细节,仅对外公开接口来和对象进行交互,从而实现功能。

2.2 封装的好处

1.数据隐藏:封装通过限制直接访问对象的内部属性,保护了数据不被外错误地修改和滥用。

2.接口和实现的分离:封装使得我们可以自由地改变一个类的内部实现,而不影响到使用该类对象的代码。

3.提高了代码的重用性:良好封装的类可以被不同的项目重用,因为它们提供了清晰的接口和明确的功能。

2.3 如何实现从封装

Java中主要通过类和访问权限来实现封装。

类可以将数据以及操作数据的方法封装结合在一起。

访问权限用来控制方法或者字段(成员变量)能否在类外使用。

2.3.1访问限定符

访问权限用来控制方法或者字段(成员变量)能否在类外使用。

Java提供了四种访问限定符:private,default,protected,public。

四种访问限定符的范围如下图所示:

public可以理解为一个人的外貌特征,大家都看到(不同包中的非子类)。

default可以理解为对于自己家庭内部(同一个包下) 事情,只有自己家庭内部的人知道,对于其他人就是隐私。

private可以理解为自己的秘密,只有自己知道(同一个包的同一个类下),其他人都不知道。

protected主要应用于继承中,我们暂时不做分析。

说明

在权限限定符不写的情况下为默认权限,即default。

访问权限除了可以限定类中成员的可见性,也可以控制类的可见性。

2.3.2 构造函数和Getter,Setter函数

构造函数

构造函数是类的初始化方法,它在创建对象时被调用。它可以用来设置对象的初始状态,确保对象在使用前被正确初始化。

Getter和Setter函数

Getter和Setter方法是用来访问和修改私有属性的标准方式。它们不仅提供了访问控制,还可以在设置值之前添加验证逻辑。

我们以创建一个Student类为例,演示构造函数和Getter,Setter函数的实现。

public class Student {    private String name;//成员变量    private int age;    public Student() {    }//无参构造函数    public Student(String name, int age) {        this.name = name;        this.age = age;    }//有参构造函数    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }//Setter,Getter方法}

我们会发现:

Student类将数据(成员变量)name,age和操作数据的方法(成员方法)结合在了一起,private,public访问限定符实现了类中的成员变量和方法能否在类外使用,private的修饰的成员变量只能在该类内进行使用,不能直接被其他类使用,public修饰的成员方法,可以在很大的范围内被使用,这个过程就可以称为封装。

注意

构造函数,不管是无参构造函数还是有参构造函数都是没有返回类型的 。

一般情况下成员变量设置为private,成员方法设置为public。

3.封装的扩展之包

3.1 什么是包

为了更好的管理类,把多个类收集在一起成为一组,称为软件包。

在Java中包是对类,接口等的封装机制的体现,是一种对类和接口等的很好的组织方法。

3.2 如何导入包中的类

通过上面包的定义我们知道,包中含有很多类和接口,那我们如何将这些类和接口导入到我们的项目中呢?我们有以下的方法:

1.通过确定类的完全限定名实现导包

全限定名包含包名和类名。

public class Test {    public static void main(String[] args) {        java.util.Date date=new java.util.Date();        System.out.println(date.getTime());    }}

2.使用import语句导入包

import java.util.Date;public class Test {    public static void main(String[] args) {        Date date=new Date();        System.out.println(date.getTime());    }}

如果想使用java.util包中的其他类,可以直接使用import java.util.*

import java.util.*;public class Test {    public static void main(String[] args) {        Date date=new Date();        System.out.println(date.getTime());    }}

3.3 自定义包

自定义包指我们自己创建的一个用于管理我们个人项目的包,主要用于管理各类和接口。

注意:

包名需要尽量指定成一个唯一的名字,通常会用公司或者学校的域名的颠倒形式(例如com.hkd.pojo)

包名要和代码路径相匹配。例如创建com.hkd.pojo的包,那么会存在一个对应的路径com/hkd/pojo来存储代码。

如果一个类中没有package语句,则该类会被默认放到一个默认包下。

3.4 常见的包

1.java.lang:包含Java核心类,如Object,String,Math,System,Thread等,这个包的类是自动导入的。

2.java.util:是java提供的工具程序包,提供了集合框架(如List,Set,Map),日期和时间API(如Date,Calender)等。

3.java.io:I/O编程开发包,包含File,InputStream,OutputStream,Reader,Writer等。

4.java.net:进行网络编程开发包。

5.java.sql:包含数据库操作的类和接口,如Connection,Statement,ResultSet等。


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/203579.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1