Java中类的封装是如何实现的?

Python09

Java中类的封装是如何实现的?,第1张

封装是将对象的信息隐藏在对象内部,禁止外部程序直接访问对象内部的属性和方法。\x0d\x0ajava封装类通过三个步骤实现:\x0d\x0a\x0d\x0a(1)修改属性的可见性,限制访问。\x0d\x0a(2)设置属性的读取方法。\x0d\x0a(3)在读取属性的方法中,添加对属性读取的限制。

Java的封装类型和原始类型的区别如下:\x0d\x0a1、基本类型,或者叫做内置类型,是JAVA中不同于类的特殊类型。\x0d\x0aJava中的简单类型从概念上分为四种:实数、整数、字符、布尔值。但是有一点需要说明的是,Java里面只有八种原始类型,其列表如下:\x0d\x0a实数:double、float\x0d\x0a整数:byte、short、int、long\x0d\x0a字符:char\x0d\x0a布尔值:boolean\x0d\x0a2、封装类型就是java面向对象引入的数据类型,里面定义了一些常用的方法,是用new分配到堆内存上的。引入封装类型的主要目的是因为类能够提供必要的方法,用于实现基本数据类型的数值与可打印字符串之间的转换,以及一些其他的实用程序方法。Java为每个原始类型提供了封装类。\x0d\x0a1 、Boolean VS boolean\x0d\x0apublic final class Boolean extends Object implementsSerializable,Comparable\x0d\x0aBoolean 类将基本类型为boolean的值包装在一个对象中。一个Boolean类型的对象只包含一个类型为boolean的字段。此外,此类还为boolean和String的相互转换提供了许多方法,并提供了处理 boolean时非常有用的其他一些常量和方法。\x0d\x0a2、 Byte VS byte\x0d\x0apublic final class Byte extends Number implements Comparable Byte类将基本类型 byte的值包装在一个对象中。一个Byte类型的对象只包含一个类型为 byte的字段。此外,该类还为 byte和 String的相互转换提供了几种方法,并提供了处理 byte时非常有用的其他一些常量和方法。\x0d\x0a3、 Character VS char\x0d\x0apublic final class Character extends Object implements Serializable, Comparable\x0d\x0aCharacter类在对象中包装一个基本类型char的值。\x0d\x0aCharacter类型的对象包含类型为char的单个字段。此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然。\x0d\x0a4 、Double VS double\x0d\x0apublic final class Double extends Number implements Comparable Double类在对象中包装了一个基本类型double的值。每个Double类型的对象都包含一个double类型的字段。此外,该类还提供了多个方法,可以将double转换为String,将String转换为double,还提供了其他一些处理double时有用的常量和方法。\x0d\x0a5、 Float VS float\x0d\x0apublic final class Float extends Number implements Comparable\x0d\x0aFloat类在对象中包装了一个float基本类型的值。Float类型的对象包含一个float类型的字段。此外,此类提供了几种方法,可在float类型和String类型之间互相转换,并且还提供了处理float类型时非常有用的其他一些常量和方法。\x0d\x0a6、 Integer VS int\x0d\x0apublic final class Integer extends Number implements Comparable\x0d\x0aInteger类在对象中包装了一个基本类型int的值。Integer类型的对象包含一个int类型的字段。\x0d\x0a此外,该类提供了多个方法,能在int类型和String类型之间互相转换,还提供了处理int类型时非常有用的其他一些常量和方法。\x0d\x0a7 Long VS long\x0d\x0a\x0d\x0apublic final class Long extends Number implements Comparable\x0d\x0aLong类在对象中封装了基本类型long的值。每个Long类型的对象都包含一个long类型的字段。\x0d\x0a此外,该类提供了多个方法,可以将long转换为String,将String转换为long,除此之外,还提供了其他一些处理long时有用的常量和方法。\x0d\x0a8、 Short VS short\x0d\x0apublic final class Short extends Number implements Comparable\x0d\x0aShort类在对象中包装基本类型short的值。一个Short类型的对象只包含一个short类型的字段。另外,该类提供了多个方法,可以将short转换为String,将String转换为short,同时还提供了其他一些处理short时有用的常量和方法。\x0d\x0a9、public final class Voidextends Object\x0d\x0aVoid 类是一个不可实例化的占位符类,它保持一个对代表 Java 关键字 void 的 Class 对象的引用。\x0d\x0a类的对象才能为null,不能把null赋值给一个变量不能,如int m=null但可以String s=null因为String是个类。

import java io BufferedReader

import java io BufferedWriter

import java io File

import java io FileReader

import java io FileWriter

import java io IOException

import java util ArrayList

import java util List

/**

* 用于对记事本的操作

*

* @author 沙琪玛

*

*/

public class NoteOperate {

// txt文件路径

private String filePath

/**

* 构造函数

*

* @param filePath

*            文本文件全路径

*/

public NoteOperate(String filePath) {

this filePath = filePath

}

/**

* 构造函数

*

* @param file

*            需要读取的文本文件

*/

public NoteOperate(File file) {

this filePath = file getPath()

}

/**

* 判断文本文件是否存在

*

* @return 存在返回true 否则返回false

*/

public boolean exists() {

File file = new File(this filePath)

return file exists()

}

/**

* 得到这个txt所有的列的数据 空行将自动跳过 并自动删除文字前后的空格

*

* @return List<String>

* @throws IOException

*/

public List<String>fileLinesContent() throws IOException {

List<String>strs = new ArrayList<String>()

File file = new File(this filePath)

FileReader fr = new FileReader(file)// 建立FileReader对象 并实例化为fr

BufferedReader br = new BufferedReader(fr)// 建立BufferedReader对象 并实例化为br

String Line = br readLine()// 从文件读取一行字符串

// 判断读取到的字符串是否不为空

while (Line != null) {

if (! equals(Line))

strs add(Line trim())

Line = br readLine()// 从文件中继续读取一行数据

}

br close()// 关闭BufferedReader对象

fr close()// 关闭文件

return strs

}

/**

* 创建一个空的记事本文档 如果这个记事本文档存在就不再创建 函数还未写实现部分<br/>如果文本已经存在则不再创建

*

* @throws IOException

*/

public void createEmptyNote() throws IOException {

File file = new File(this filePath)

if (!file exists())

file createNewFile()

}

/**

* 将内容写入这个文本 注意以前的内容将会被删除

*

* @param str

*            将要写入的内容

* @throws IOException

*/

public void writeString(String str) throws IOException {

File file = new File(this filePath)

BufferedWriter output = new BufferedWriter(new FileWriter(file))

output write(str)

output close()// 关闭BufferedReader对象

}

/**

* 在文本的指定行插入文字 如果该行已经存在 该行内容将会被删除 如果行号不存在 将会 *** 入到最后一行

*

* @param i

*            行号 行号为 时 将插入到最后一行

* @param str

*            将要插入的内容

* @throws IOException

*/

public void insertWords(int i String str) throws IOException {

List<String>strs = fileLinesContent()

// 进行插入操作

if (i == || strs size() <i) // 插入到最后一行

{

strs add(str)

} else { // 插入到文本中

strs set(i str)

}

// 重新写入到文本

StringBuffer *** = new StringBuffer()

for (String temp : strs) {

*** append(temp replace( \r\n )+ \r\n )

}

writeString( *** toString())

}

lishixinzhi/Article/program/Java/hx/201311/26945