一、类和对象
1、对象
java 是一种面向对象的编程语言(Object Oriented Programming Language,OOPL),因此我们要学会用面向对象的思想考虑问题和编写程序。
1.1、对象的属性和方法
在面向对象的编程思想中,把对象的静态特征和动态特征分别称为对象的属性和方法,它们是构成对象的两个主要因素。
而方法是用来描述对象动态特征(行为)的一个动作。
对象:用来描述客观事物的一个实体,由一组属性和方法构成。
1.2、封装
封装就是把一个事物包起来,并尽可能隐藏内部细节。
2、类
类的属性:对象所拥有的静态特征在类中表示时称为类的属性。
类的方法:对象执行的操作称为类的方法。
2.1、类和对象的关系
因此类和对象的关系就是抽象和具体的关系。类是多个对象进行综合抽象的结果,是实体对象的概念模型,而一个对象是一个类的实例。
2.2、类是对象的类型
类就是对象的类型。
事实上,定义类就是抽取同类实体的性自定义的一种数据类型。
3、Java是面向对象的语言
3.1、Java的类模板
语法:
public class <类名>{
//定义属性部分
属性1的类型 属性1;
属性2的类型 属性2;
.....
属性3的类型 属性3;
//定义方法部分
方法1;
方法2;
.....
方法n;
}
规则:
1、不能使用Java中的关键词。
2、不能包含任何嵌入的空格或点号“.”,以及除下划线 “_” 、字符 “$” 外的特殊字符。
3、不能以数字开头。
3.2、如何定义类
1、定义类名
语法:
public class 类名{
}
2、编写类的属性
3、编写类的方法
语法:
public String showCenter(){
//方法体
}
访问修饰符 返回值类型 方法名(){
//方法体
}
3.3、如何创建和使用对象
语法:
类名 对象名 = new 类名();
School center = new School();
语法:
对象名.属性
对象名。方法名();
main()方法是程序的入口,但要保证一个Java类中只有一个main()方法。
3.4、Java数据类型的默认值
类型 | 默认值 |
---|---|
int | 0 |
double | 0.0 |
char | ‘u0000’ |
boolean | false |
Stirng | null |
二、类的无参方法
1、类的方法概述
1.1、什么是类的方法
类是由一组具有相同属性和共同行为的实体抽象而来的
2、如何定义类的方法
类的方法必须包括以下三个部分
1、方法的名称
2、方法的返回值类型
3、方法的主体
语法:
public 返回值类型方法名(){
//方法的主体
}
通常,编写方法时,分两步完成。
第一步:定义方法名和返回值类型。
第二步:在{}中编写方法的主体部分。
在编写方法时,要注意以下三点。
方法体放在一对大括号中。方法体就是一段程序代码,完成一定的工作。
方法名主要在调用这个方法时使用。在Java中一般采用骆驼命名法。
方法执行后可能会返回一个结果,该结果的类型称为返回值类型。使用return语句返回值。
在编写程序时一定要注意方法声明中返回值的类型和方法体中真正返回值的类型是否匹配。如果不匹配,编译器就会报错。return是跳转语句的一种,它主要做两件事情。
跳出方法:意思是“我已经完成了,要离开这个方法”。
给出结果:如果方法产生一个值,这个值放在return后面,即<表达式>部分,意思是“离开方法,并将<表达式>的值返回给调用它的程序”。
3、方法调用
在程序中通过使用方法名称从而执行方法中包含的语句,这一过程就称为方法调用。
对象名.方法名();
类的方法调用,均使用如下两种形式。
同一个类中的方法,直接使用方法名调用该方法。
不同类的方法,首先创建对象,再使用“对象名.方法名()”来调用。
4、变量的作用域
4.1、成员变量和局部变量
1、成员变量:AutoLion类方法可以直接使用该类定义的成员变量。如果其他类的方法要访问它,必须首先创建该类的对象,然后才能通过操作符"."来引用
2、局部变量:它的作用域仅仅在定义该变量的方法内,因此只有在这个方法中能够使用。
使用成员变量和局部变量需要注意以下几点内容:
1、作用域不同。局部变量的作用域仅限于定义它的方法,在该方法外无法访问。成员变量的作用域在整个类内部都是可见的,所以成员方法都可以使用,如果访问权限允许,还可以在类外部使用变量。
2、初始值不同。对于成员变量,如果在类定义中没有给他赋初始值,java会给它应该默认值,基本数据类型的值为0,引用类型的值为null。但是java不会给局部变量赋初始值,因此局部变量必须要定义赋值后在使用。
3、在同一方法中,不允许有同名的局部变量。在不同的方法中,可以有同名的局部变量
4、局部变量可以和成员变量同名,并且在使用时,局部变量具有跟高的优先级。
5、Javadoc注释
5.1什么是Javadoc注释
/**
*AccpSchool类
*@author JadeBird
*@version 1.0 2019.9.19
*/
JavaDoc是前Sun公司提供的一种技术,它能够从程序源代码中提取类、方法、成员等的注释,形成一个和源代码配套的API帮助文档(简单那来说,就是介绍该类、类的方法和成员变量的文档)。
JavaDoc注释的语法规则
- JavaDoc注释以"/**“开头,以”*/"结尾。
- 每个注释包含一些描述性的文本及若干个JavaDoc标签。
- JavaDoc标签一般以"@"为前缀,常用的JavaDoc标签如下图所示
标签 | 含义 |
---|---|
@author | 作者名 |
@parameter | 参数及其意义 |
@return | 返回值 |
@version | 版本标识 |
@since | 最早使用该方法/接口的JDK版本 |
@throws | 异常类及抛出条件 |
5.2、如何生成Javadoc文档
1、使用命令行为方式生成
2、使用myeclipse工具生成
三、带参数的方法
1、带参方法
<访问修饰符> 返回值类型 <方法名> (<参数列表>){
//方法的主体
}
在语法中:
1、<访问修饰符>指该方法允许被访问的权限范围,只能是public、protectd或private。
2、返回值类型指方法返回值的类型。如果方法不返回任何值,他应该声明为void类型。Java对待返回值的要求很严格,方法返回值必须与所说明的类型相匹配。使用return语句返回值。
3、<方法名>是定义的方法和名字,它应该使用合法的标识符。
4、<参数列表>是传送给方法的参数列表。列表中各参数间以逗号分隔。
2、调用方法
语法:
对象名.方法名(参数1,参数2,....参数n);
把参数分别称为形式参数和实际参数,简称形参与实参,形参是在定义方法时对参数的称呼,目的是定义方法需要传入的参数个数和类型。实参是在调用方法时传递给方法处理实际的值。
调用方法时,注意以下两点
先实例化对象,在调用方法
实参的类型,数量,顺序都要与行参一一对应。
3、为什么需要包
包有以下三个方面的作用:
1、包允许将类组合成较小的单元(类似文件夹)易于找到和使用相应的类文件
2、 防止命名冲突:java中只有在不同包中的类才能重名。世界上有千千万万的程序员,命名同名的类几乎是难免的。有了包,类名就好管理多了
3、 包允许在跟广的范围内保护类,数据和方法,可以在包内定义类。根据规则,包名的代码有可能包内访问该类。
4、如何声明包
package 包名;
1、Java包的名字通常由小写字母组成,不能以圆点开头或结尾。
2、一个唯一包名的前缀通常是全部小写的ASCII字母,并且是一个顶级域名com、edu、gov、net或org。通常使用知足的网络域名的逆序。
3、包名的后续部分依不同机构各自内部的规范不同而不同。这类命名规范可能以特定目录名的组成来区分部门、项目、机器或注册名。
5、如何导入包
语法:
import java.util.*;
import 包名.类名;
声明包的含义:声明当前类所处的位置。
导入包的含义:声明在当前类中要使用到的其他类所处的位置
四、字符串
1、字符串概述
字符串是一系列字符组成的序列
1.1、如何使用字符串
简单地说,使用字符串主要分为两步:
- 定义并初始化字符串。
- 使用字符串,对字符串进行一些处理。
String s = "Hello World";
String s = new String();
1.2、字符串的长度
语法:
字符串1.length();
返回字符串1的长度
1.3、字符串的比较
语法:
字符串1.length(字符串2);
在Java中,双等号()和equals()方法虽都应用于两个字符串,但所判断的内容是有差别的。简单地讲,""判断的是两个字符串对象在内存中的首地址是否相等,即判断是否是同一个字符串对象,而equals()判断的是两个字符串对象是否相等。但是equals()方法在判断时并不会忽略大小写,因此这时需要用到另一种方法——equalslgnoreCase()方法。lgnore是忽略的意思,这种方法在比较字符串时会忽略字符的大小写。
当然在Java中,String类也提供了两个方法改变字符串中字符的大小写。
1、toLowerCase():转换字符串的英文字母为小写。
2、toUpperCase():转换字符串的英文字母为大写。
语法:
字符串1.equalsIgnoreCase(字符串2);
2、复杂的字符串处理
2.1、字符串的链接
创建字符串对象时,使用"+“运算符将多个字符串连接成一个新字符串,并且使用”+“可以将任意多个字符串连接在一起。而且,在使用”+“运算符连接字符串和int(或double)类型数据时,”+"将int(或double)类型数据自动转换成String类型。除此之外,String类也提供了另一个方法concat(),将一个字符串连接到另一个字符串的后面。
字符串1.concat(字符串2);
2.2、字符串的提取和查询
序号 | 方法 | 说明 |
---|---|---|
1 | Public int indexOf(int ch)Public int indexOf(String value) | 搜索第一个出现的字符或字符串 |
2 | Public int lastindexOf(int ch)Public int lastindexOf(String value) | 搜索最后一个出现的字符或字符串 |
3 | Public Sreing substring(int index) | 提取从位置索引开始的字符串部分 |
4 | Public String substring(int beginindex,int endindex) | 提取beginindex和endindex之间的字符串部分 |
5 | Public String trim() | 返回一个前后不含任何空格的调用字符串的副本 |
字符串是一个字符序列,每一个字符都有自己的位置,字符串事实上也是一个字符数组,因此它的位置从0开始到(字符串长度-1)结束。
3、StringBuffer类
3.1如何使用StringBuffer类
1.声明StringBuffer对象并初始化
2.使用StringBuffer对象
StringBuffer类提供了很多方法以供使用,调用时使用"."操作符完成。
3.2、常用的StringBuffer类的方法
语法:
字符串1.toString();
将StringBuffer类型的字符串1转换为String类型的对象并返回。
语法:
字符串1.append(字符串2);
将字符串2连接到字符串1后并返回。
该方法和String类的concat()方法一样,都是把一个字符串追加到另一个字符串后面,所不同的是String中只能将String类型的字符串追加到一个字符串后,而StringBuffer可以将任何类型的值追加到字符串之后。
语法:
字符串1.insert(位置,参数);
将参数插入字符串1的指定位置(int 类型)后并返回。参数可以是包括String的任何类型。
利用StringBuffer类的length()方法,获取数字串的长度,使用for 循环从后向前每隔三位插入一个逗号