一、类和对象
1.对象
**1.对象的含义:**对象即是生活中一个确确实实存在的东西,现实生活中客观存在的事物就称之为对象。对象也是一种具体的概念。
2.对象的属性和方法:对象的静态特征和动态特征分别称为对象的属性和方法。
3.如何使用对象:
形式:
类名 对象名 = new 类名();
使用对象中所包含的语法:
对象名.属性; 对象名.方法();
2.类
**1.类的含义:**类是具备某些共同特征的实体的集合,它是一种抽象的概念与对象恰恰相反。同时类类定义了对象将会拥有的特征(属性)和行为(方法)。
**2.类的属性和方法:**对象所拥有的静态特征在类中表示时称为类的属性。例如:顾客类的性别;车类的型号等等。对象执行的操作称为类的方法。例如:顾客购物的行为即为顾客类的方法。
3.类的命名要求:
(1)不能包含任何嵌入的空格或点号".",以及下划线"_",字符"$"外特殊字符。
(2)不能数字开头。
(3)不能使用java中任何的关键字。
4.定义类属性的语法:
public class 类名{
//定义属性类部分
属性1的类型 属性1 ;
......
属性n的类型 属性n ;
}
5.定义类方法的语法:
访问修饰符 返回值类型 方法名(){
//方法体
}
6.使用类的步骤如下:
(1)定义类:使用关键字class。
(2)创建类的对象:使用关键字new。
(3)使用类的属性和方法:使用**“.”**操作符。
3.类和对象的关系
类和对象的关系是抽象和具体的关系。类是对象的类型,对象是类的实例。
注:对象的属性和方法被共同封装在类中,相铺相成,不可分割!
二、类的无参方法
1.如何定义类的方法
类的方法必须包括以下三个部分。
(1)方法的名称。
(2)方法的返回值类型。
(3)方法的主体。
类方法定义的语法如下:
public 方法值类型方法名 (){
//方法的主体
}
2.方法的调用
1.调用的形式:
第一种:同一个类中的方法,直接使用方法名调用该方法。
第二种:不同类的方法,首先创建对象,在使用“对象名.方法名()”来调用。
2.方法调用是应注意的事项:
(1)方法的返回值类型为void,方法中不能有return语句。
(2)方法中不能返回多个值。
(3)多个方法不能嵌套定义。
(4)不能在方法外部直接写程序逻辑代码。
3.变量的定义域
**1.成员变量:**在类中定义的变量称为类的成员变量。
**2.局部变量:**在方法中定义的变量称为类的局部变量。
3.以下为变量定义域中的注意事项:
(1)作用域不同:局部变量的作用域仅限于定义它的方法,在该方法外无法访问。
(2)初始值不同:对于成员变量,如果在类定义中没有给他赋初始值。Java语言会给他一个默认值。因此局部变量必须要定义赋值后再使用。
下面为Java数据类型的默认值:
类型 | 默认值 | |
---|---|---|
int | 0 | |
double | 0.0 | |
char | ‘\u0000’ | |
boolean | false | |
String | null |
(3)在同一个方法中,不允许有同名的局部变量。在不同的方法中,可以有同名的局部变量。
(4)局部变量可以和成员变量同名,并且在使用时,局部变量具有更高的优先级。
4.JavaDoc注释
1.JavaDoc注释语法如下:
/**
*AccpSchool类
*@author JadeBird
*@version 1.0 2016/04/2
*/
2.JavaDoc注释的语法规则:
(1)JavaDoc注释以"/**“开头,以”*/"结尾。
(2)每个注释包含一些描述性的文本及若干个JavaDoc标签。
(3)JavaDoc标签一般以"@"为前缀,常用的JavaDoc标签如下图所示
3.常用的JavaDoc标签:
标签 | 含义 |
---|---|
@author | 作者名 |
@parameter | 参数及其意义 |
@return | 返回值 |
@version | 版本标识 |
@since | 最早使用该方法/接口的JDK版本 |
@throws | 异常类及抛出条件 |
三、带参数的方法
1.定义带参方法
1.带参方法的语法如下:
<访问修饰符> 返回值类型 <方法名> (<参数列表>){
//方法的主体
}
注意事项:
(1)<访问修饰符>指该方法允许被访问的权限范围,只能是public、protectd或private。
(2)返回值类型指方法返回值的类型。如果方法不返回任何值,他应该声明为void类型。Java对待返回值的要求很严格,方法返回值必须与所说明的类型相匹配。使用return语句返回值。
(3)<方法名>是定义的方法和名字,它应该使用合法的标识符。
(4)<参数列表>是传送给方法的参数列表。列表中各参数间以逗号分隔。
2.形参与实参:
在定义方法时把参数称为形参,在调用方法时把参数称为实参。
语法:
对象名.方法名(参数1,参数2,参数3,...,参数n)
2.深入理解带参方法
(1)数组作为参数的方法
例如:
public class TestDemo{
public static void main(String[] args) {
Demo st =new Demo();
int [] scores =new int[5]; //保存比赛成绩
Scanner input =new Scanner(System.in);
System.out.println("请输入五名参赛者的成绩:");
for (int i = 0; i < 5; i++) {
scores[i]=input.nextInt(); //传入实参
} //输出平均成绩
double avgScore=st.calAvg(scores); //调用方法并接收
System.out.println("平均成绩:"+avgScore);
}
}
(2)对象作为参数的方法
1.语法:
类名称 [ ]对象数组名= new 类名称[长度];
例如:
public class Student {
int id;
String name;
int age;
int score;
public void showInfo() {
System.out.println(id+"\t"+name+"\t"+age+"\t"+score);
}
}
public class StudentsBiz3 {
Student[] students = new Student[30];
public void addStudent(Student stu) {
for (int i = 0; i < students.length; i++) {
if(students[i] == null) {
students[i] = stu;
break;
}
}
}
public void showStudents() {
System.out.println("本班学生列表:");
for (int i = 0; i < students.length; i++) {
if(students[i] != null) {
students[i].showInfo();
}
}
System.out.println();
}
}
3.包
1.为什么属于包
(1)包允许将类组合成较小的单元(类似文件夹),易于找到和使用相应的类文件。
(2)防止类名冲突:Java中只有在不同包中的类才能重名。
(3)包允许在更广的范围内保护类、数据和方法,可以在包内定义类。根据规则,包外的代码有可能不能访问该类。
2.如何声明包
语法:
package 包名;
命名包的规范:
(1)Java包的名字通常由小写字母组成,不能以圆点开头或结尾。
(2)一个唯一包名的前缀通常是全部小写的ASCII字母,并且是一个顶级域名com、edu、gov、net或org。通常使用知足的网络域名的逆序。
(3)包名的后续部分依不同机构各自内部的规范不同而不同。
3.如何导入包
语法:
import java.util.*;
import 包名.类名;
四、字符串
1.如何使用字符串
1.使用字符串有以下两步骤:
(1)定义并初始化字符串。
(2)使用字符串,对字符串进行一些处理。
语法:
String s = "Hello World";//创建对象
String s = new String();//创建一个空字符串
2.字符串的长度和比较
1.字符串长度的语法:
字符串1.length();
String类提供了length()方法。字符串是一串字符序列,String类的length()方法用来确定字符串的长度,即字符串中的字符数目。调用length()方法返回的结果就是字符串中的字符数。
例如:
if(pwd.length()>=6) { //判断密码长度
System.out.println("注册成功!");
} else {
system.out.println("密码长度不能小于6位!");
}
2.字符串比较的语法:
字符串1.equals(字符串2);
在使用eruals()方法比较两个字符串时,它逐个对照组成两个字符串的每个字符是否相同。如果都相同,则返回true;否则返回false。对于字符的大小写,也在检查范围之内。
例如:
if(uname.equals("TOM") &&pwd.equals("1234567"){
System.out.println("登陆成功!");
} else {
System.out.println("用户名与密码不匹配,登录失败!");
}
3.复杂的字符串处理
1.字符串的连接
字符串1.concat(字符串2);
例如:
String s = new String("你好");
String name = new String("张三");
String sentence = s.concat(name);
2.字符串的提取和查询
常用提取和查询字符串的方法:
方法 | 说明 | |
---|---|---|
Public int indexOf(int ch)Public int indexOf(String value) | 搜索第一个出现的字符或字符串 | |
Public int lastindexOf(int ch)Public int lastindexOf(String value) | 搜索最后一个出现的字符或字符串 | |
Public Sreing substring(int index) | 提取从位置索引开始的字符串部分 | |
Public String substring(int beginindex,int endindex) | 提取beginindex和endindex之间的字符串部分 | |
Public String trim() | 返回一个前后不含任何空格的调用字符串的副本 |
3.字符串的拆分
字符串1.split(String separator,int limit);
(1)separator可选项,标识拆分字符串时使用一个或多个字符。如果不选择该项,则返回包含该字符串所有单个字符的元素数组。
(2)limit可选项,该值用来限制返回数组中的元素个数。
例如:
String words = "长亭外 古道边 芳草碧连天 晚风扶 柳笛声残 夕阳山外山";
String[] printword = new String[100];
printword = words.split(" ");
4.StringBuffer类
1.如何使用StringBuffer类
(1)声明StringBuffer对象并初始化
//声明一个空的StringBuffer对象
StringBuffer sb1 = new StringBuffer();
//声明一个字符串"青春无悔"
StringBuffer sb2 = new StringBuffer("青春无悔");
(2)使用StringBuffer对象
StringBuffer类提供了很多方法以供使用,调用时使用"."操作符完成。
2.常用的StringBuffer类方法
1.语法:
(1)
字符串1.toString();
该方法是将StringBuffer类型的字符串1转化为String类型的对象并返回。
例如:
String s1 = sb2.toString();
(2)
字符串1.append(字符串2);
该方法为StringBuffer类的拼接,但是StringBuffer类的拼接可以将任何类型的值追加到字符串的后面,而String类只能追加String类型的。
例如:
StringBuffer sb1 = sb.append("我心永恒");
System.out.println(sb1);
StringBuffer sb2 = sb1.append('啊');
system.out.println(sb2);
(3)
字符串1.insert(位置,参数);
将参数插入字符串1的指定位置(int 类型)后并返回。参数可以是包括String的任何类型。
例如:
Scanner in = new Scanner(System.in);
System.out.println("请输入一串数字:");
String nums = in.next();
StringBuffer str = new StringBuffer(nums);
for (int i = str.length()-3; i >0; i= i-3) {
str.insert(i,',');
}
5.String类提供了大量的操作字符串的方法
String常用的如下:
(1)获得字符串长度:length()
(2)比较字符串:equals()
(3)连接字符串:concat()
(4)提取字符串:substring()
(5)搜索字符串:indexOf()
(6)拆分字符串:split()
StringBuffer常用的如下
(1)转换成String类型:toString()
(2)连接字符串:append()
(3)插入字符串:insert()