Java的和对象,字符串
一、类和对象
1、什么是类,什么是对象
类:类是一个抽象的概念性的东西,是事物所属分类,类别;
对象:对象是具体存着的实物、事物。
2、对象
在Java的世界中,“万物皆对象”;
对象:用来描述客观事物的一个实体,由一组属性和方法构成。
对象有两大特征:静态特征和动态特征;
静态特征:用某些数据来描述的特征;如:人的姓名、性别等。
动态特征:是对象所表现得行为和对象所具有得功能;如:购物、收款等。
1、对象得属性和方法
属性:对象的属性就是对象的静态特征,属性是用来描述对象静态特征的一个数据项,数据项的值就是属性值;对象的属性被存储在一些变量中。
方法:对象的方法就是对象的动态特征,方法是用来描述对象动态特征(行为)的一个动作序列,注:带小括号()的都是方法;
2、封装
封装就是把一个事物包装起来,并尽可能的隐藏内部细节;
对象的属性和方法是相辅相成,不可分割的,它们共同组成了实体对象,因此,对象具有封装性。
3、类
类定义了对象将拥有的特征(属性)和动作(方法)。
类的属性:对象所拥有的静态特征在类中表示时称为类的属性;例如:所有的顾客都有姓名,姓名就可以称为“顾客类”的属性。
类的方法:对象执行的操作;例如:所有的顾客都有购物的行为,购物就可以称为“顾客类”的一个方法。
1、类和对象的关系
类和对象的关系:
1、类是对象的抽象化,对象是类的实例化;
2、对象所拥有的特点和行为都只能来源于类。
3、如果类没有赋予的动作,意味着对象不具备这个行为。
4、如果一个行为不属于当前对象,请不要在对应类中的实现相应的行为。
2、类是对象的类型
事实上,定义类就是抽取同伴实体的共性自定义的一种数据类型。
4、Java是面向对象的语言
1、Java的类模板
在Java中要创建一个类,需要使用一个class,一个类名和一对大括号。
1、语法
public class 类名{
//定义属性部分
属性1的数据类型 属性1;
属性2的数据类型 属性2;
.....
属性3的数据类型 属性3;
//定义方法部分
方法1;
方法2;
.....
方法n;
}
其中,class是创建类的关键词,在class前面有一个public,表示 “ 公有 ”的意思,一定不能少public。
2、类的命名规则
1、不能使用Java的关键字
2、不能包含任何嵌入的空格和点号 “.” ,以及除下划线 " _ " 、字符 " $ " 外的特殊字符
3、不能以数字开头。
4、类名通常由多个单词组成,每个单词的首字母大写。
2、类的命名规则
3、定义类
1、定义类名
语法:
public class 类名{
}
编写类的属性和方法,我们来用一个例子来说明:
public class School{
//定义北大青鸟中心的属性
String schoolName; //中心名称
int classNumber; //教室数目
int labNumber; //机房数目
//定义北大青鸟中心的方法
public void showCenter(){
System.out.println(schoolName + "培训中心\n" + "配备:" + classNumber + "教" + labNumber + "机");
}
}
2、方法
语法:
访问修饰符 返回值类型 方法名(){
//方法体
}
访问修饰符是用来限制访问该方法的范围,返回值类型是方法执行后返回结果的类型(返回值类型可以是 基本数据类型 或者是 引用型数据类型,也可以没有返回值,但是没有返回值必须要用void来描述);方法名要符合标识符的命名规则;方法名建议采用驼峰命名法,类名建议采用帕斯卡命名法。
3、创建和使用对象
创建对象的语法:
类名 对象名 = new 类名();
举个例子:
School center = new School();
引用对象的属性和方法的语法:
对象名.属性 //引用对象的属性
对象名.方法名() //引用对象的方法
在Java中,要引用对象的属性和方法,需要 " . " 操作符;其中,对象名在圆点的左边,属性和方法的名称在圆点的右边。
例:给对象的属性赋值和调用方法
center.name = "北大青鸟"; //给name属性赋值
center.showCenter(); //调用showCenter()方法
4、Java数据类型的默认值
类型 | 默认值 |
---|---|
int | 0 |
double | 0.0 |
char | ‘\u0000’ |
boolean | false |
String | null |
5、面向对象的优点
1、与人类的思维习惯一致
2、信息隐藏,提高了程序的可维护性和安全性
3、提高了程序的可重用性
二、类的无参方法
1、类的方法
1、什么是类的方法
类是由一组具有相同属性和共同行为的实体抽象而来的;对象执行的操作是通过编写类的方法实现的。
2、定义类的方法
类的方法必须包括以下三个部分。
1、方法的名称
2、方法的返回值类型
3、方法的主体
语法:
public 返回值类型 方法名(){
//方法的主体
}
返回值
语法:
return 表达式;
return有两个作用:1、跳出方法 ;2 、给出结果;
方法调用
语法:
对象名.方法名();
Java中类是程序的基本单元。
同一个类中的方法,直接使用方法名调用该方法。
不同类的方法,首先创建对象,再使用”对象名. 方法名()“来调用。
在static方法中必须要先创建一个对象,如果类方法和main方法中都用了static方法,就可以直接使用(前提条件:在同一个类中)
2、变量的作用域
在类的变量中有两种变量:成员变量和局部变量;
成员变量:类的方法可以直接调用该类定义的成员变量,其他类的方法要访问它,必须首先要创建该类的对象,然后才能用 " . " 来调用。
局部变量:它的作用域仅仅在定义该变量的方法内,因此只有在这个方法中能够使用。
成员变量和局部变量的区别:
1、作用域的不同
2、初始值的不同
3、在同一个方法中,不允许出现同名的局部变量
4、局部变量可以和成员变量同名,并且在使用时,局部变量具有更高的优先级
3、Java Doc注释
在Java中比较常用的注释有两种一种是单行注释( // ),一种是多行注释(块注释:/* / ;文档注释:/* */)
现在又学习到了一种注释:Java Doc注释;这种注释一般用在方法上面,用来解释方法的作用;
语法:
1、Java Doc注释以" /** 开头,以 */ 结尾";
2、每个注释包含一些描述性的文本及若干个Java Doc标签
3、Java Doc标签一般以"@"为前缀,常用的Java Doc标签
4、常用的Java Doc标签表
标签 | 含义 | 标签 | 含义 |
---|---|---|---|
@author | 作者名 | @version | 版本标识 |
@parameter | 参数及其意义 | @since | 最早使用该方法/类/接口的JDK版本 |
@return | 返回值 | @throws | 异常类及抛出条件 |
5、生成JavaDoc注释的两种方式:
a.使用命令行方式生成
b.使用MyEclipse工具生成
三、类的有参方法
1、带参方法
1、定义有参方法:
语法:
访问修饰符 返回值类型 方法名(参数列表){
//方法的主体
}
1、访问修饰符:指该方法允许被访问的权限范围,只能是public、protected和private;其中public访问修饰符表示该方法可以被任何其他代码调用。
2、返回值类型指方法返回值的类型;方法返回值必须要和所说明的类型匹配,使用return语句返回值。
3、方法名是定义的方法的名字,方法名必须使用合法的标识符。
4、参数列表是传送给方法的参数列表,列表中的各参数间以逗号隔开。
例如:
public class Students{
String[] names = new String[30]; //学生姓名数组
public void add(String name){ //有参方法
//增加学生姓名
}
public void show(){ //无参方法
//显示全部学生的名字
}
}
2、调用带参方法
语法:
对象名.方法名(参数1,参数2,.....,参数n)
注意:
1、先实例化对象,再调用方法。
2、实参的类型要兼容,数量,顺序都要与形参一致。
例子:
public class Test{
public static void main(String[] args){
Scanner in = new Scanner(system.in);
Students st = new Students(); //创建一个对象
for(int i = 0; i< 5 ; i++){
System.out.println("输出学生姓名:");
String newName = in.next();
st.add(newName); //调用方法并传实参
}
st.show(); //显示全部学生的姓名
}
}
2、包
1、包的主要作用
1、包允许将类名组合成较小的单元(类似文件夹),易于找的和使用相应的类文件;
2、防止命名冲突:Java中只有再不同包中的类才能重名。
3、包允许在更广的范围内保护类、数据和方法,可以在包定义类。
2、声明包
语法:
package 包名;
实例:
package shiLi; //声明包
public class Team{
//......
public String toString(){
//......
}
}
包名的命名规则:
1、Java包的名字通常由小写字母组成,不能以圆点开头或结尾
2、一个唯一包名的前缀通常是全部小写的ASCII字母,并且是一个顶级域名,通常使用组织的网络域名的逆序。
3、包名的后续部分依不同的机构各自内部的规范不同而不同。
3、导入包
语法:
import 包名.类名;
import 包名.*;
例:
package Demo; //声明包
import shuLi; //导入包
声明包:声明当前类所在的位置;
导入包:声明在当前类中要使用到其他类所处的位置。
四、字符串
1、字符串
a、如何使用字符串
使用字符串的步骤主要有两步:
1、定义并初始化字符串
2、使用字符串,对字符串进行一些处理。
语法:
//创建一个字符串对象“Hello World”
String s = "Hello World";
创建一个空字符串语法:
//创建一个空字符串
String s = new String();
创建一个字符串对象语法:
//创建一个字符串对象“Hello World”
String s = new String("Hello World")
字符串的长度;
语法:
字符串1.length();
length()是用来求字符串的长度的
字符串的比较:
语法:
字符串1.equals(字符串2); //区分大小写
字符串1.equalsIgnoreCase(字符串2); //不区分大小写
字符串的转换:
语法:
字符串.toLowerCase(); //转换字符串的小写形式
字符串.toUpperCase(); //转换字符串的大写形式
2、复杂的字符串
字符串的连接:
语法:
字符串1.concat(字符串2);
效果和“ + ”是差不多的;
字符串的提取和查询
1、indexOf()方法
语法:
String s = "青春无悔";
int index = s.indexOf('春');
在字符串中搜索某个指定的字符或字符串,返回的是第一个匹配的字符位置。
2、lastIndexOf()方法
语法:
String s = "青春无悔无悔青春";
int index = s.lastIndexOf("青春");
在字符串中搜索某个指定的字符或字符串,返回的是最后一个匹配的字符位置。
3、substring(int index)方法
String s = "青春无悔无悔青春";
String res = s.substring(1);
提取从位置索引开始的字符串的部分,调用时小括号里写要提取的字符串的开始位置,返回值是要提取的字符串。
4、substring(int beginindex,int endindex)方法
String s = "青春无悔无悔青春";
string result = s.substring(2,6);
提取从开始位置到结束位置的字符串,不包括结束位置的字符。
5、trim()方法
忽略字符串前后的空格。
字符串的拆分
语法:
字符串1.split(String separator,int limit);
separator:标识拆分字符串时使用一个或多个字符,也可以没有。
limit:用来限制返回数组中的元素个数。
3、StringBuffer类
1、使用StringBuffer类
1、声明StringBuffer对象并初始化
2、使用StringBuffer对象
2、常用的StringBuffer类的方法
1、toString()方法
语法:
字符串1.toString();
将StringBuffer类型的字符串转换成String类型的对象返回。
例:
String s1 = sb.toString();
2、连接字符串append()方法
语法:
字符串1.append(字符串2);
将字符串2连接到字符串1后面.
3、insert()方法
语法:
字符串1.insert(位置,参数);
将参数插入字符串1的指定位置(int类型)后并返回。