封装和字符串 - 草稿

犯的错误:

1.区分viod(无返回值的意思),不写就:缺少返回语句

2.记得写show(显示的意思),不写就:什么也不显示



1.封装概述

封装是面向对象三大特征之一(封装,继承,多态),是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作的

2.封装原则

将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问成员变量private,提供对应的getXxx()/setXxx()方法

3.封装好处

通过方法来控制成员变量的操作,提高了代码的安全性

把代码用方法进行封装,提高了代码的复用性

构造方法

构造方法概述

构造方法是一种特殊的方法,作用:创建对象

格式:

public class 类名{

修饰符 类名(参数){  }

//修饰符一般采用public

功能:主要是完成对象数据的初始化

构造方法注意事项

构造方法的创建

当一个类中没有给任何的构造方法,系统会给一个默认的无参构造方法

如果定义了构造方法,系统将不再提供默认的构造方法

构造方法的重载

如果自定义了带构造方法,还要使用无参数构造方法,就必须再写一个无参数构造方法。

推荐的使用方式

无论是否使用,都手工书写无参数构造方法

标准类制作

成员变量

使用private修饰

构造方法

1提供一个无参数构造方法

2提供一个带多个参数的构造方法

3成员方法

提供每一个成员变量对应的setXxx()/getXxx()

提供一个显示对象信息的show()

4创建对象并为其成员变量赋值的两种方式

无参构造方法创建对象后使用setXxx()赋值

使用带参构造方法直接创建带走属性值的对象

字符串

API

API应用程序编程入口

机器人踢足球,控制机器人的接口类,这些类中定义了操作机器人各种动作的方法,这种接口类就是机器人厂商给应用程序编程的入口,大家把这些类称为API

javaAPI指的就是JDK中提供的各种功能的java类

这些类将底层的实现封装了起来,我们不需要关系这些类是如何实现的,只需要学习这些类如何实现,我们可以通过帮助文档来学习这些API如何使用。

打开帮助文档(CHM格式)—找到索引选项卡中的输入框—在输入框中输入Random—看类在哪个包下(例:软件包:java util~java.long是不需要导包的)—看类的描述信息(该类的信息用于生成随机数,知道这类的信息是干什么的)—看构造方法(有一个无参一个带参)—看成员方法(方法很多,主要看:返回值,方法名,参数,是int就给int,要什么给什么,看描述)

String

String概述

String类在java.lang包下,所以使用的时候不需要导包

String类代表字符串,java程序中的所有字符串文字(例如“abc”)都被实现为此类的实例,也就是说,java程序中所有的双引号字符串,都是String类的对象

字符串的特点

1字符串不可变,它们的值在创建后不能被更改

2虽然String的值是不可变得,但是他们可以被共享

3字符串效果上相当于字符数组(char[])但是底层原理是字节数组(byte[])


String构造方法

方法名                  说明

public String()      创建空白字符串对象,不  含任何内容

public String(char[] chs)    根据字符数组的内容,来创建字符串对象

public String(byte[]bys)    根据字节数组的内容,来创建字符串对象

String s="abc";    直接赋值的方式创建字符串对象,内容就是abc

String对象的特点

1。通过new创建的字符串对象,每一次new都会申请一个内存空间,虽然内容相同,但是地址值不同,

char[]chs={'a','b','c'};

String s1=new String(chs);

String s2=new String(chs);

上面的代码中,jvm会首先创建一个字符数组,然后每一次new的时候都会有一个新的地址,只不过s1和s2参考的字符串内容是相同的

2以""方式给出的字符串,只要字符序列相同,(顺序和大小写),无论在程序代码中出现几次,jvm都只会建立一个String对象,并在字符串池中维护

String s3="abc";

String s4="abc";

在上面的代码中,针对第一行代码,jvm会建立一个String对象放在字符串池中,并给s3参考;第二行则让s4直接参考字符串中的String对象,也就是说他们本质上是同一个对象

字符串的比较

使用==作比较

基本类型:比较的是数据值是否相同

引用类型:比较的是地址值是否相同

字符串时对象,它比较内容是否相同,是通过一个方法来实现的,这个方法叫:equals()

public boolean equals(Object anObject):将此字符串与指定对象进行比较,由于我们比较的是字符串对象,所以参数直接传递一个字符串

比较地址用==;s1==s2;

比较内容用equals()方法;s1.equals(s2);

通过帮助文档查看String中的方法

方法名                    说明

public boolean equals(Object anObject)  比较字符串的内容,严格区分大小写(用户名和密码)

public char charAt(int index)    返回指定索引处的char值

public int length()    返回此字符串的长度


StringBuilder

如果对字符串进行拼接操作,每次拼接都会构建一个新的spring对象,既耗时又浪费内存空间,而这种操作还不可避免,那么有没有一种比较好的方法可以解决这个问题呢?答案是肯定的,我们可以通过将我提供的StringBuilder类来解决这个问题

StringBuilder是一个可变的字符串类,我们可以把它看成是一个容器。

这里的可变指的是StringBuilder对象中的内容是可变得

String和StringBuilder的区别

String内容是不可变的,没有就创建一个

StringBuilder内容是可变的


StringBuilder构造方法

方法名          说明

public StringBuilder()      创建一个空白可变字符串对象,不含有任何内容

public StringBuilder(String str)      根据字符串的内容,来创建可变字符串对象

StringBuilder的添加和反转方法

方法名            说明

public StringBuilder append(任意类型)    添加数据,并返回对象本身

public StringBuilder reverse()    返回相反的字符序列

StringBuilder和String的相互转换

StringBuilder转换为String

public String toStrong()  通过toString()就可以实现把StringBuilder转换为String

String转换为StringBuilder

public StringBuilder(String s)  通过构造方法就可以实现把String 转换为StringBuilder

通过帮助文峰查看StringBuilder的方法

方法名        说明

public StringBuilder append(任意类型)      添加数据,并返回对象

public StringBuilder reverse()    返回相应的字符序列

public String toString()    通过toString()就可以实现把StringBuilder转换为String

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容