一、软件技术方面
(一)本周学习内容
数组** :**
一维数组:用来储存同一类型的数据
注意:object 数组可以储存任意类型的数组
二维数组:是以一维数组元素
动态初始化:
数据类型[] [] 变量名 = new 数据类型【长度1】【长度2】
静态初始化:
数据类型[] [] 变量名 ={{},{}}
字符串 :
格式:
String str = new String(""字符串内容);
String str = “内容”;
==、equals、instanceof三者的不同:
1.==: 基本数据类型比较的是数值,引用数据类型比较地址值
2.equala:本意是比较地址值,在字符串比较内容
3.instanceof : 比较运算符 (包含)
字符串的一些常用方法:
*获取方法:
*1. int length() 获取字符串长度
*2.char charAt(index) 获取特定位置的字符
*3. int indexof(string str) 获取特定字符的位置
*3.lastInsexof(string str) 获取最后一个字符的位置
- 判断方法:
*1.booLean endswith(String str)是否以指定字符结束
*2.boolean isEmpty()是否长度为0 如: null V1.6
*3.boolean contains(CharSequences)是否包含指定序列应用:搜索booLean equals(object anobject)是否相等
*4.boolean,equalsIgnoreCase(String anotherstring)忽略大小写是否相等
- 转换方法:
*1.char[] tochararray() 将字符串转换为字符数组
*2.byte[] getBytes() 将字符串转换为字节数组
- 其他方法:
*1.tring replace(char oLdthar, char newChar)替换
*2.Stringl] split(string regex)切割
*3.String substring(int beginindex)
*4.String substring(int beginIndex, int endIndex)截取字串
-
String toUppercase()转大写
-
String toLowercase()转小写String trim()去除空格
注意:String是不可变的字符串序列,
引申:
字符串是常量:它们的值在创建之后不能更改
StringBuffex 与StringBuilder.的相同处与不同处:
-
相同点:
-
1.两个类都是字符串缓冲类√
-
2.两个类的方法都是一致的
-
不同点:
-
1.StringBuffe是线程安全的操作效率低,
-
- StringBuilder是线程非安全的操作效率高。
-
- StringBuffer,是jdk1.0出现的,StringBuilder是jdk1.5的时候出现的。
-
推荐使用:StringBuilder,因为操作效率高。
面向对象 :
理解:
面向对象:也就是一切皆对象。
对象:存在于现实生活中,且唯一。
对象------》现实中 类--------》java
类:
类:具有相同特性,相同行为的一类事物,它是抽象的,不存在的
类就是相同行为和相同属性得抽象。
相同属性-------》全局变量
相同行为-------》方法
格式:
创建对象 ===== new
类 变量名 = new 类();
调用属性:对象.属性;
调用方法:对象.方法();
局部变量与全局变量的区别:
-
位置不同:
-
1.全局变量在类的内部,方法外部
-
2.局部变量在方法内部
-
生命周期不同:
-
1.全局变量是伴随着类生而生,死而死
-
2.局部变量是只在自己作用域中有效
-
使用方式不同:
-
1.全局变量不初始化也可以使用因为有默认值
-
2.局部变量必须初始化才能使用
-
存储位置不同:
-
1.局部变量在栈中
-
2.全局变量在堆中被各自对象所维护
包:
package位于文件的首行
在Java中,包主要有以下用途:
1.包允许将类组合成较小的单元
2.有助于避免命名冲突
3.包允许在更广的范围内保护类、数据和方法
包名的命名规范:
1.通常都是用小写英文字母
2.一般为公司网址的反向排列,
如:com.company.region.package
包可以是类、接口和子包的集合
面向对象三大特征:
封装:
含义:控制类,属性,方法的可见范围
目的:
1.隐藏类的实现细节一
2.让使用者只能通过事先定制好的方法来访问数据
3.可方便地加入控制逻辑,限制对属性的不合理操作
4.便于修改,增强代码的可维护性
5.不变(What To Do)与变(How To Do)的分开
实现方法:
1.使用范围修饰符藏内部状态
- 对象间的交互都通过方法调用进行
修饰符:
Public(公开的) 本类 本包 ,子类 ,其他
protected(受保护)本类 ,本包,子类
default(默认) 本类 ,本包
private(私有) 本类
private私有化之后必须提供get/set方法;
关键字:
static 静态:修饰属性,常量,方法
静态变量调用得方式:
对象.属性; 类名.属性;
静态方法调用得方式
对象.方法();类名.方法();
需要理解:
静态的成员先存在于内存中。静态的不能直接访问非静态成员,(用对象间接访问),而非静态能直接访问静态和非静态成员
this 关键字
-
java就近原则:离谁近调用谁。
-
this代表调用者:
1.当全局和局部变量重名时,用this调用全局变量
2,.this代表调用者对象空间;
3.构造方法使用this区分剧部和全局
4.在get/set中使用;
5.构造方法重载,在一个构造方法中调用构造方法 必须位于构造方法的第一句
this跟static不能共存:
原因 :
-
1.this代表调用者,由对象调用,static由类名调用
-
2.一个类的static方法会先于类的任何一个对象之前初始化,而this是当前对象。所以static初始化之后,this才会被创建。 显然static方法是没有this的。
*3.静态变量不能直接访问非静态。
方法重载:
1.方法名相同
2.参数类型,个数不同
-
构造方法:
-
1.方法名跟类名相同
-
2.没有返回值
-
3.在创建对象使调用
-
4.在类中如果没有写任何的构造方法,默认自动添加为无参的构造方法
值传递:基本数据类型是值传递,只考虑作用范围
地址值:引用数据类型,一般是地址值传递
封装:
关键字:super
-
1.父类空间的引用
-
2.当子父类出现同名成员时,使用super调用父类成员
-
3.使用super()调用父类的构造方法
-
4.super()必须位于构造方法第一行。
this跟super方法不能共存:
是因为this和super都要定义在第一行,所以只能有一个;
-
注意事项:
-
1.包含关系
-
2.符合道德伦理
-
3.子类可以继承父类静态及非j静态成员,除了父类私有化的
-
4.构造方法不能被继承,但被子类默认调用(子类对象在创建对象时会默认调用父类的构造方法)
-
5.只能直接单继承
-
6.object是所有类的父类。
多态