面向对象的三大特征之一:封装

面向对象的三大特征之一:封装

  1. 什么是封装?

    就是用类设计对象处理某一个事物的数据时,应该把要处理的数据,以及处理这些数据的方法,设计到一个对象中去

  2. 封装的设计规范

    合理隐藏,合理暴露

  3. 公开成员,可以使用public(公开)进行修饰

    隐藏成员,使用private(私有、隐藏)进行修饰

实体类javaBean(实体类)

什么是实体类(用来保存某个事物的数据,就是一种特殊形式的类)

  1. 这个类中的成员变量都要私有,并且要对外提供相应的getxxx,Setxxx方法
  2. 类中必须要有一个公共的无参的构造器
  3. 仅仅只是一个用来保存数据的Java类,可以用它创建对象保存某个事物的数据
  4. 实体类对应的是软件开发里现在比较流行的开发方式,数据和数据的业务处理相分离
成员变量和局部变量的区别
区别成员变量局部变量
类中位置不同类中,方法外常见于方法中
初始化值不同有默认值,不需要初始化赋值没有默认值,使用前必须赋值
内存位置不同堆内存栈内存
作用域不同整个对象在所归属的大括号中
生命周期不同与对象共存亡随着方法的调用而生,随着方法运行结束死亡
常用API

API(全称 APPlication Programming Interface:应用程序编程接口)

什么是包?

包是用来分门别类的管理各种不同程序的,类似于文件夹,建包有利于程序的管理和维护

在自己的程序中调用其他包下的程序注意事项
  1. 如果当前程序中,要调用自己所在包下的其他程序,可以直接调用(同一个包下的类,互相可以直接调用)
  2. 如果当前程序中,要调用其他包下的程序,则必须在当前程序中导包,才可以访问,导包格式:import 包名.类名
  3. 如果当前程序中,要调用java提供的程序,也需要先导包,才可以使用,但是java.lang包下的程序是不需要我们导包的,可以直接使用
  4. 如果当前程序中,要调用多个不同包下的程序,而这些程序名正好一样,此时默认只能导入一个程序,另一个程序必须带包名访问

String

String概述,常用方法介绍

String创建对象封装字符串数据的方式
  • 方式一:java程序中的所有字符串文字(例如"abc")都为此类对象

    String name = “张三”;

    String SchoolNAME = “武汉交通”;

  • 方式二:调用String类的构造器初始化字符串对象

构造器说明
Public String创建一个空白字符串对象,不含任何内容
Public String (String original)根据传入的字符串内容,来创建字符串对象
Public String (char[] chars)根据字符数组的内容,来创建字符串对象
Public String (byte[] bytes)根据字节数组的内容,来创建字符串对象
  • 方式一:直接使用双引号"…"
  • 方式二:new String类,调用构造器初始化字符串对象
String提供的操作字符串数据的常用方法
方法名说明
Public int length()获取字符串的长度返回(字符个数)
Public char charAt(int index)获取某个索引位置处的字符返回
Public char[] toCharArray()将当前字符串转换成字符数组返回
Public boolean equals(object anobject)判断当前字符串与另一个字符串的内容一样,一样返回true
Public String Substring(int beginIndext,int endIndex)根据开始和结束索引进行截取,得到新的字符串(包前不包后)
Public String Substring(int beginIndex)从传入的索引处截取,截取到末尾,得到新的字符串返回
Public String replace(charSequence target,charSequence replacement)使用新值,将字符串中的旧值替换,得到新的字符串返回
Public boolean contains(charSequence s)判断字符串中是否包含了某个字符串
Public boolean StartsWith(String prefix)判断字符串是否以某个字符串内容开头,开头返回true,反之返回false
Public String[] split(String regex)把字符串按照某个字符串内容分割,并返回字符串数组回来
String注意事项
1. String的对象是不可变字符串对象

注意:只要是以"…"方式写出的字符串对象,会在堆内存中的字符串常量池中存储

Public static void main(String[] args) {
	String name = "java";
	name+="程序员";
	name+="张三";
	System.out.println(name);
}

外链图片转存中..

结论:

每次试图改变字符串对象实际上是新产生了新的字符串对象,变量每次都是指向了新的字符串对象,之前字符串对象的内容确实是没有改变的,因此说String的对象是不可变的

2. String的第二点注意事项
  1. 只要是以"…"方式写出的字符串对象,会存储到字符串常量池,且相同内容的字符串只存储一份
  2. 但通过new方式创建字符串对象,每new一次都会产生一个新的对象放在堆内存中
  3. 变量+运算在运行时确实(堆中),字符串字面量+运算在编译时确定(常量池中)
String测试题
Public class Test1 {
	public static void main(String[] args) {
		String s1 = "abc";
		String s2 = "a"+"b"+"c";
		System.out.println(s1==s2); // true
		java存在编译优化机制,程序在编译时:"a"+"b"+"c"会直接转成"abc",以提高程序的执行性能
        }
}
Public class Test2 {
	public static void main(String[] args) {
		String s1 = "abc"; // 常量池中
		String s2 = "ab";
		String s3 = s2+"c"; // 堆内存中
		System.out.println(s1==s2); // false
	}
}
  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值