11章类和对象
每个对象都有自己的特征,静态特征和动态特征,静态特征可以用数据类型来描述,比如名字,年龄,体重,动态特征是对象表现的行为或对象所具有的功能,如购物,收款。
对象 | 静态特征 | 静态特征的值 | 动态特征 |
---|---|---|---|
"顾客"对象张浩 | 姓名,年龄,体重。 | 张浩,20,60kg。 | 购买商品。 |
"收银员"对象李明 | 员工号,姓名,部门。 | 10001,李明,财务部。 | 收款打印账单 |
类:是一个抽象的概念,类中定义的是属性和行为,是创建对象的模板。
对象:实实在在存在的东西,由一组属性和方法构成。
对象的属性和方法
public class <类名>{
//定义属性部分
属性1的类型 属性1;
属性2的类型 属性2;
.......
属性3的类型 属性3;
//定义方法部分
方法1;
方法2;
.......
方法3;
}
public class person{//一个人的类
String name;
int age;
int weight;
public void eat(){
system.out.print("人可以吃饭");
}
public void sleep(){
system.out.print("人可以睡觉");
}
public void play(){
system.out.print("人可以游泳");
}
}
其中name,age,weight就是person所拥有的属性
eat,sleep,play就是这个类的行为,就是方法。
public static void main(String[]args){
person xiaoming=new person();//小明就是对象
xiaoming.eat();
xiaoming.sleep();
xiaoming.play();
//调用它的方法。
}
调用:
类名 对象名=new 类名();
对象名.属性//引用对象的属性
对象名.方法名()//引用对象的方法
封装
封装又叫隐藏现实。封装是把属性方法封装起来。
封装使得代码更加安全和容易。将代码分成一个个相对独立的单元。
封装避免了命名冲突的问题。
12章类的无参方法
类的每一个方法都实现了一个功能。
类的方法定义了类的某种行为(功能)。
类的方法:
1.方法的名称。
2.方法的返回值类型。
3.方法的主体。
public 返回值类型方法名(){
//方法的主体
}
方法执行后可能会返回一个结果,该结果的类型为返回值类型,使用return语句返回。
return 表达式;
//随返回值的类型返回一样类型的值
return的作用:跳出方法,给出结果。
同一类中,直接使用方法名调用该方法。
不同类中的方法,首先创建对象,再使用"对象名.方法名()"调用。
4.成员变量和局部变量
1.1成员变量:person类的方法可以直接使用该类定义的成员变量。如果其他类的方法要访问它,必须首相创建该类的对象,然后才能通过操作符"."来引用。
1.2局部变量:他的作用域仅仅在定义该变量的方法内,因此只有在这个方法中才能使用。
作用域不同,出数值不同,在同一方法中,不允许有同名变量。不同方法中,可以有同名大的局部变量。局部变量可以和成员变量同名,并且在使用时,局部变量具有更高的优先级。
14章带参数的方法
带参方法
访问修饰符 返回值类型 方法名 (参数列表){
//方法的主体
}
public class StudentsBiz {
String[] names = new String[30]; //学生姓名数组
public void addName(String name) { //有参方法
//增加学生姓名
}
public void showNames() { //无参方法
//显示全部学生姓名
}
}
调用
对象名.方法名(参数1,参数2,……参数n)
在定义方法和调用方法时,把参数分别称为形式参数和实际参数,简称形参和实参。形参是在定义方法时对参数的称呼,目的是定义方法需要传入的参数个数和类型。实参是在调用方法时传递个方法处理的实际的值。
1.先实例化对象。
2.实参的类型、数量、顺序都要与形参一一对应。
带多个参数的方法
public boolean searchName(int start,int end,String name) { //里面就有三个形参
boolean find = false;
return find;
}
声明包:
要声明一个包,只要包含一个package命令作为一个Java源文件的第一条语句就可以。
package时关键字。包的声明必须时java源文件中的第一条非注释性语句而且一个源文件只有一个包声明语句。
java包的名字通常是由小写字母组成的,不能以圆点开头或者结尾。
15章字符串
定义并初始化字符串。
使用字符串,对字符串进行一些处理。
String s = new String(); //空字符串
String s = "Hello World"; //字符串对象
如何获得字符串的长度、对两个字符串进行比较、连接两个字符串及提取一个字符串中的某一部分。
String类提供了length();的方法用来确定字符串的长度,及字符串中的字符数目。
public class Register {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String uname,pwd;
System.out.println("请输入用户名:");
uname = in.next();
System.out.println("请输入密码:");
pwd = in.next();
if(pwd.length()>=6) { //判断密码长度
System.out.println("注册成功!");
} else {
System.out.println("密码长度不能小于6位!");
}
}
}
字符串的比较
在使用eruals()方法比较两个字符串时,它逐个对照组成两个字符串的每个字符是否相同。如果都相同,则返回true;否则返回false。对于字符的大小写,也在检查范围之内。
public class Login {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String uname,pwd;
System.out.println("请输入用户名:");
uname = in.next();
System.out.println("请输入密码:");
pwd = in.next();
if(uname.equals("TOM") && pwd.equals("1234567")) {
System.out.println("登陆成功!");
} else {
System.out.println("用户名与密码不匹配,登录失败!");
}
}
}
方法:
**indexOf()**在字符串内搜索某个指定的字符或字符串,它返回出现第一个匹配字符的位置
**lastlndexOf()**在字符串内搜索某个指定的字符或字符串,,但是它搜索的是最后一个出现的字符的位置
**substring(int index)**提取从位置索引开始的字符串部分,调用时括号中写的是要提取的字符串的开始位置,方法的返回值就是要提取的字符串
**substring(int beginindex,int endindex)**提取位置beginindex和位置endindex位置之间的字符串部分。
**trim()**可以忽略字符串前后的空格
除了使用String了存储字符串之外,还可以使用StringBuffer类存储字符串。StringBuffer也是java开发人员给我们提供的用于处理字符串的一个类,而且它是比String了更高效的存储字符串的一种引用数据类型。
StringBuffer类提供了很多方法以供使用,调用时使用"."操作符完成。
Stirng类提供了大量的操作字符串的方法:
获取字符串长度:length();
比较字符串:equals();
连接字符串:concat();
提取字符串:substring();
搜索字符串:indexOf();
拆分字符串:split();
StringBuffer类提供的方法:
转换成String类型:toString();
连接字符串:append();
插入字符串:insert();