java总结
类和对象
对象
其实每一个对象都有自己的特征,包括静态特征和动态特征
对象是用来描述客观事物的一个实体,由一组属性和方法构成
在编程中,对象的属性被存储在一些变量里,如可以将“姓名”存储在一个字符串类型的变量中,将“员工号”存储在一个整形变量中,对象的行为则通过定义方法来实现
对象 | 静态特征 | 静态特征的值 | 动态特征 |
---|---|---|---|
姓名 | 张浩 | ||
"顾客"对象张浩 | 年龄 | 20 | 购买商品 |
体重 | 60kg | ||
员工号 | 10001 | ||
"收银员"对象李明 | 姓名 | 李明 | 收款打印账单 |
部门 | 财务部 |
静态特征
静态特征是可以用某些数据来描述的特征,如人的名字,年龄等
动态特征
动态特征是对象所表现的行为或对象所具有的功能,比如购物,收款等
封装
封装就是把一个事物包装起来,并尽可能隐藏内部细节,对象的属性和方法是相辅相成,不可分割的,它们共同组成了实体对象,因此,对象具有封装性。
类
类定义了对象将会用有的特征(属性)和行为(方法)。
类的属性:对象所拥有的静态特征在类中表示时称为类的属性,打一个比方,购买东西的顾客都有着自己的姓名,因此姓名可以称为“顾客类”的属性,只是不同对象的这一属性值不同,如顾客的姓名不相同
类的方法:对象执行的操作称为类的方法,列如,所以顾客都有购物行为,因此这就是“顾客类”的一个方法
类与对象的关系
一个类为它的全部对象给出了一个统一的定义,而它的每个对象则是符合这种定义的一个实体,因此类和对象的关系就是抽象和具体的关系。类是多个对象进行综合抽象的结果,是实体对象的概念模型,而一个对象是一个类的实例,如图
java的类模板如下
public class<类名>{
//定义属性部分
属性1的类型 属性1;
属性2的类型 属性2;
......
属性3的类型 属性3;
//定义方法部分
方法1;
方法2;
......
方法n;
}
如何定义类
定义类名:通过定义类名,得到程式最外层的框架
语法如下
public class 类名{
}
编写类的属性:通过在类的主体中定义变量来描述类所具有的静态特征(属性),这些变量称为类成员变量
编写类的方法:通过在类中定义方法来描述类所具有的行为,这些方法称为成员方法
如何创建和使用对象
一个类可以生成多个对象,语法如下;
类名 对象名=new 类名();
center对象的类型就是School类型。使用new创建对象时,我们并没有给它的数据成员赋一个特定的值。考虑到每个对象的属性值可能是不一样的,所以在创建对象后再给它的数据成员赋值。
在java中,要引用对象属性和方法,需要使用"."操作符。其中,对象名在圆点的左边,属性或方法的名称在圆点的右边。
表格 java数据类型的默认值
类型 | 默认值 |
---|---|
int | 0 |
double | 0.0 |
char | ‘\u0000’ |
boolean | false |
String | null |
类的无参方法
如何定义类的方法
类的方法必须包括以下三个部分
方法的名称
方法的返回值类型
方法的主体
public 返回值类型方法名(){
//方法的主体
}
通常,编写方法时,分两步完成
第一步:定义方法名和返回值类型。
第二步:在{}中编写方法的主体部分
在编写方法时,要注意已下的三点
方法体放在一对大括号。方法体就是一段代码,完成一定的工作。
方法名主要在调用这个时使用。在java中一般采用骆驼试命名法
方法执行后可能会返回一个结果,该结果的类型称为返回值类型。使用return语句返回值
方法调用
同一个类中的方法,直接使用方法名调用该方法
不同类的方法,首先创建对象,再使用"对象名.方法名()"来调用
变量的作用域
成员变量:AutoLion类方法可以直接使用该类定义的成员变量。如果其他类的方法要访问它,必须首先创建该类的对象,然后才能通过操作符"."来引用
局部变量:它的作用域仅仅在定义该变量的方法内,因此只有在这个方法中能够使用。
使用成员变量和局部变量需要注意以下几点内容:
作用域不同。局部变量的作用域仅限于定义它的方法,在该方法外无法访问。成员变量的作用域在整个类内部都是可见的,所以成员方法都可以使用,如果访问权限允许,还可以在类外部使用变量。
初始值不同。对于成员变量,如果在类定义中没有给他赋初始值,java会给它应该默认值,基本数据类型的值为0,引用类型的值为null。但是java不会给局部变量赋初始值,因此局部变量必须要定义赋值后在使用。
在同一方法中,不允许有同名的局部变量。在不同的方法中,可以有同名的局部变量
局部变量可以和成员变量同名,并且在使用时,局部变量具有跟高的优先级。
什么是javaDoc注释
javaDoc注释以"/**“开头,以”*/"结尾
每个注释包含一些描述性的文本及若干个JjavaDoc标签
javaDoc标签一般以"@"为前缀,常用的javaDoc标签如图所示
标签 | 含义 | 标签 | 含义 |
---|---|---|---|
@autho | 作者名 | @versio | 版本标识 |
@parameter | 参数及其意义 | @since | 最早使用该方法/类/接口的JDK版本 |
@return | 返回值 | @throws | 异常类及抛出条件 |
带参数的方法
带参方法
语法如下
<访问修饰符>返回值类型<方法名>(参数列表){
//方法的主体
}
<方法名>是定义的方法方名字,它必须使用合法的标识符。
<参数列表>是传送个方法的参数列表。列表中各参数间以逗号分隔。
调用带参方法
把参数分别称为形式参数和实际参数,简称形参与实参,形参是在定义方法时对参数的称呼,目的是定义方法需要传入的参数个数和类型。实参是在调用方法时传递给方法处理实际的值。
调用方法时,注意以下两点
先实例化对象,在调用方法
实参的类型,数量,顺序都要与行参一一对应。
数组作为参数的方法
当参数是基本数据类型的时候形参所做修改对实参没有影响,当参数是数组的时候,形参所做修改实参有影响
包
为什么需要包
包有以下三个方面的作用:
(1) 包允许将类组合成较小的单元(类似文件夹)易于找到和使用相应的类文件
(2) 防止命名冲突:java中只有在不同包中的类才能重名。世界上有千千万万的程序员,命名同名的类几乎是难免的。有了包,类名就好管理多了
(3) 包允许在跟广的范围内保护类,数据和方法,可以在包内定义类。根据规则,包名的代码有可能包内访问该类。
如何声明包
要声明一个包(package),只要包含一个packag命名作为一个java源文件的第一条语句就可以。
包的声明必须是java源文件中第一条非注释语句,而一个源文件只能有一个包声明语句
命名包的规范:
java包的名字通常由小写字母组成,不能以圆点开头或结尾一个唯一包名的前通常是全部小写的ASCII,并且是一个顶级域名
包名的后续部分依不同机构各自内部的规范不同而不同。这类命名规范可能以特定目录名的组成来区分部门,项目,机器或注册名。
如何导入包
在使用impott时可以指定类的完整描述,即“包名.类名“,来导入包中的某个特定的类。
字符串
如何使用字符串
简单来说,使用字符串分为两步
(1) 定义并初始化字符串
(2) 使用字符串,对字符串进行一些处理
字符串的长度如图;
语法
字符串 1.length();
字符串的连接
在使用"+“运算符连接字符串和int(或double)类型数据时,”+"将int(或double)类型数据自动转化成String类型
除此之外,在java中,String类也提供了另一个方法concat(),将一个字符串连接到另一个字符串后面。
字符串的提取和查询
字符串是一个字符序列,每一个字符都有自己的位置,字符串事实上也是一个字符数组,因此他从位置0开始到(字符串长度-1)结束,一个字符串"青春无悔",其中,“青”,“春”,“无”,"悔"的索引下标依次为0,1,2,3
序号 | 方法 | 说明 |
---|---|---|
1 | public int indexOf(int ch) | 搜索第一个出现的字符ch(或字符串) |
2 | public int lastIndexOf(int ch) | 搜索最后一个出现的字符ch(或字符串) |
3 | public String substring(int index) | 提取从位置索引开始的字符串部分 |
4 | public String substring(int beginindex,int endindex) | 提取beginindex和endindex之间的字符串buf |
5 | public String trim() | 返回一个前后不含任何空格的调用字符串的副本 |
字符串的拆分
(1) separator可选项,标识拆分字符串时使用一个或多个字符。如果不选择该项,则返回包含该字符所有单个字符所有当字符的元素数组
eginindex,int endindex) | 提取beginindex和endindex之间的字符串buf |
| 5 | public String trim() | 返回一个前后不含任何空格的调用字符串的副本 |
[外链图片转存中…(img-6QWpPNYA-1569210292808)]
字符串的拆分
(1) separator可选项,标识拆分字符串时使用一个或多个字符。如果不选择该项,则返回包含该字符所有单个字符所有当字符的元素数组
(2) limit可选项,该值用来限制返回数组中的元素个数