第十一章 类和对象

第十一章 类和对象

1、对象

现实世界中客观存在的任何事物都可以被看作对象。对象可以是有形的,比如一辆汽车,它也可以是无形的,如一项计划。对象无处不在。

每个对象都有自己的特征,静态特征和动态特征,静态特征可以用数据类型来描述,比如名字,年龄,体重,动态特征是对象表现的行为或对象所具有的功能,如购物,收款。

对象静态特征静态特征的值动态特征
“顾客”对象张浩姓名张浩购买商品
“顾客”对象张浩年龄20购买商品
“顾客”对象张浩体重60kq购买商品
“收银员”对象李明员工号10001收款打印账单
“收银员”对象李明姓名李明收款打印账单
“收银员”对象李明部门财务部收款打印账单
1、对象的属性和方法

对象拥有两个特征,一个静态特征,一个动态特征,在java代码中我们把静态特征称为属性,把动态方法称为方法,他们是构成对象的两个主要因素,属性是用来描述对象静态特征的一个数据项,数据项的值既属性值。

2、封装

就是把一个事物给包装起来,尽可能隐藏内部细节,如电脑就是一个对象,他的内部有主板、处理器、芯片、扇热器、显示器…等等。把这些对象组装起来就是一台电脑,电脑在放歌,在放电影,在进入游戏,这就是电脑的行为,也就是方法。

2、类

类有很多的类,比如动物类、植物类,食物类、汽车类等等等等,都是类,在这个些类里面,比如动物类,我看到一只狗,这只狗就是一个对象,是动物类的实体化,狗狗都有毛、颜色、名字、年龄、体重,这就是狗所拥有的的静态属性,所有的狗同时都有具备的,狗狗也有一些共同的行为(动态属性),如叫、吃、睡、玩等。类定义了对象将会拥有的特征(属性)和行为(方法)。

1类和对象的关系

比如说制作保温杯的模具,制作保温杯的模具是类,它定义了保温杯的大小,形状,模具做出来的不同大小不同形状的保温杯就是对象。所以就要用这个类创建出类的一个实例,既创建类的一个对象。类和对象的关系就同模具制作出物品之间的关系。

2、类是对象的类型

说到类型,有基本数据类型和引用数据类型,描述狗狗是什么类型呢,是字符还是字符串,其实都不是,狗狗的类型就是动物类,也就是说类就是对象的类型。

3、java是面向对象的语言

java的类模板:

public class <类名>{
    //定义属性部分
    属性1的类型	属性1;
    属性2的类型	属性2;
    .......
    属性3的类型	属性3;
    //定义方法部分
    方法1;
    方法2;
    .......
    方法3;
}

静态属性是写在类里面的好调用。类的命名也有规则1、不能使用java关键字。2、不能包含任何符号出下划线和美元符号外。3、不能以数字开头。其实跟变量名命名方法一样。

通过定义类名,得到程序最外层的框架,类定义了对象将会拥有的属性和方法。

public class 类名{
    
}

通过在类的主体中定义变量来描述所局有的静态特征(属性),这些变量称为类的成员变量。

public class Names {
	String name;		//姓名
	int age;			//年龄
	char xin;			//性别
    //上面三个就是一个人的静态属性
    public viud show(){
        System.out.println("姓名:"+name+"\n年龄:"+age+"\n性别:"+xin);
         //上面就是这个人的基本信息
        System.out.println(name+"在跑步")
    }
}
    //下面是它的方法
public class Name{
	public static  void main(String [] agre) {	
        Names st = new  Names();
        st.name = "张三"
        st.age = 17;
        st.xin = '男';
	    st.show();
	}
}
访问修饰符	返回值类型	方法名(){
    //方法体
}

定义好了一个类,就可以根据定义的模板来创建对象了,类的作用就是创建对象。由类生成对象,称为类的实例化过程。一个实例也就是一个对象,一个类可以生成多个对象。创建对象的语法如下:

类名	对象名	=	new	类名();
 Names st = new  Names();

有没有想起来还有一个地方也用了new,Scanner input = new Scanner (System.in);,导入包。

st对象的类型是Names类型。使用new创建对象时,我们并没有给它的数据成员赋一个特定的值。在java中,要引用对象的属性方法,需要使用"."操作符。对象名在圆点的左边,属性或方法的名称再远点的右边。

对象名.属性名		//引用对象的属性
对象名.方法名();	//引用对象的方法
//创建Names类的对象st后,就可以给对象的属性赋值或调用方法
st.name = "张三";		//给name属性赋值
st.show();			//调用show方法
类 型默 认 值
int0
double0.0
char‘\u0000’
booleanfalse
Stringnull

第十二章 类的无参方法

4、类方法的概述
1、什么事类的方法

类是由一组具有相同属性的共同行为的实体抽象而来的。类的方法是一个功能模块,其作用是做一件事情。

2、如何定义类的方法

类的方法包括三个部分:

1、方法的名称

2、方法的返回值类型

3、方法的主体

public 返回值类型方法名(){
    //方法的主体
}

第一步:定义方法名和返回值类型。

第二步:在{}中编写方法的主体部分。

注意:

方法放在一对大括号中,方法体就是一段程序代码,完成一定的工作。

方法名主要在调用这个方法时使用,采用驼峰命名法。

方法执行后可能会返回一个结果,该结果的类型为返回值类型,使用return语句返回。

return	表达式
//方法的返回值是什么类型就返回什么类型的值

return语句是跳转语句的一种,它主要做两件事。

1、跳出方法。意思是我已经完成了,要离开这个方法。

2、给出结果,如果方法产生一个值,这个值就放字return后面,就是表达式部分,意思是离开方法,并将表达式的值返回 给调用它的程序。

3、方法调用
对象名.方法名();

在类中,类的不同成员方法之间也可以进行相互调用。

第十四章 带参数的方法

5、带参方法
访问修饰符	返回值类型	方法名	(参数列表){
    //方法的主体
}
public class StudentsBiz {
	String[] names = new String[30];	//学生姓名数组
	public void addName(String name) {	//有参方法
		//增加学生姓名
	}
	public void showNames() {			//无参方法
		//显示全部学生姓名
	}
}
1、调用带参方法
对象名.方法名(参数1,参数2,参数3.......)

在定义方法和调用方法时,把参数分别称为形式参数和实际参数,简称形参和实参。形参是在定义方法时对参数的称呼,目的是定义方法需要传入的参数个数和类型。实参是在调用方法时传递个方法处理的实际的值。

注意:

1、先实例化对象。

2、实参的类型、数量、顺序都要与形参一一对应。

public class TestAdd {
	public static void main(String[] args) {
		StudentsBiz st = new StudentsBiz();
		Scanner input = new Scanner(System.in);
		for (int i = 0; i < 5; i++) {
			System.out.print("请输入学生姓名:");
			String name = input.next();
			st.addName(name);		//调用方法并传实参
		}
		st.showNames();				//显示全部学生姓名
	}
}

6、带多个参数的方法
public boolean searchName(int start,int end,String name) {		//里面就有三个形参
		boolean find = false;
		return find;	
}

方法searchName()带有三个参数,数据类型分别是int,int,String。调用该方法传递的实参s,e,name。de类型一一对应,并且searchName()方法定义返回值为boolean类型,return的find为boolean类型。参数无论多少,在使用时只要注意实参和形参一一对应:传递实参值与形参的数据类型相同,个数相同,顺序一致。就掌握了带参使用。

6、包

在生活中,保存文档是会经常使用文件夹,把不同类型归类,然后分放到不同的文件夹中,易与查找的管理。

声明一个包,只要包含一个package命令作为一个java源文件的第一条语句就可以。

package 包名;			//语法

package是关键字。报的声明必须是java源文件中的第一条非注释性语句,而且一个源文件只有一个包声明语句。

java包的名字通常是由小写字母组成的,不能以圆点开或结尾。

第十五章 字符串

7、字符串概述

大家一定用过QQ邮箱,用户名和密码等都是使用的字符串,字符串是一系类字符组成的序列。

使用字符串分为两步:

1、定义并初始化字符串

2、使用字符串,对字符进行一些处理

String s = new String();		//空字符串
String s = "Hello World";		//字符串对象

如何获得字符串的长度、对两个字符串进行比较、连接两个字符串及提取一个字符串中的某一部分。

String类提供了length();的方法用来确定字符串的长度,及字符串中的字符数目。

字符串.length();			//返回字符的长度
public class Register {
	public boolean verify(String name,String pwd1,String pwd2) {	//形参
		boolean lfag = false;			
			if(name.length()>=3&&pwd1.length()>=6){		//确定密码的长度
				if( pwd1.equals(pwd2)) {
				System.out.println("登录成功!");
				lfag = true;
				}else {
					System.out.println("密码小于6位或两次密码输入错误!");
				}
			}else {
				System.out.println("用户名小于三位数");
			}
				return lfag;
		}
	}
//下面是测试类
public class Test {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		Register st = new Register();
		System.out.println("***欢迎进入注册系统***\n");
			do {
			System.out.print("请输入用户名:");
			String name = input.next();
			System.out.print("请输入密码:");
			String pwd1 = input.next();
			System.out.print("请再次输入密码:");
			String pwd2 = input.next();
			boolean cout = st.verify(name, pwd1, pwd2);
		}while(true);
	}
}

1、字符串的比较

不知道大家还记不记得以前有一次用过一次equals(),,没错这就是字符串比较的关键,他的意思是相等的,就是“等于”

在使用equals()把两个字符串进行比较,它一个个对照成两个字符串的每个字符是否相同。如果相同,则返回true,否则返回false。字符大小写要比较。

7、字符串

equals(); 比较字符串

toLowerCase(); 转换字符串中的英文字母为小写

toUpperCase(); 转换字符串中的英文字母为大写

8、方法

indexOf() 在字符串内搜索某个指定的字符或字符串,它返回出现第一个匹配字符的位置

lastlndexOf() 在字符串内搜索某个指定的字符或字符串,,但是它搜索的是最后一个出现的字符的位置

substring(int index) 提取从位置索引开始的字符串部分,调用时括号中写的是要提取的字符串的开始位置,方法的返回值就是要提取的字符串

substring(int beginindex,int endindex) 提取位置beginindex和位置endindex位置之间的字符串部分。

trim() 可以忽略字符串前后的空格

2、字符串的拆封分
字符串1.split(String separator,int limit);		//拆分
separator 可选项,标识拆分字符串时使用一个或多个字符。如果不选择该项,则返回包含该字符串所有单个字符的元素数组
limint 可选项,该值用来限制返回数组中的元素个数
9、StringBuffer类

在娟中,处了使用String了存储字符串之外,还可以使用StringBuffer类存储字符串。StringBuffer也是java开发人员给我们提供的用于处理字符串的一个类,而且它是比String了更高效的存储字符串的一种引用数据类型。

StringBuffer类提供了很多方法以供使用,调用时使用"."操作符完成。

字符串1.toString();	将StringBuffer类型的字符串1转换为String类型的对象并返回。
字符串1.insert(位置,参数);	将参数插入字符串1 的指位置(int 类型)后并返回。参数可以是包括String的任何类型。

Stirng类提供了大量的操作字符串的方法:

获取字符串长度:length();

比较字符串:equals();

连接字符串:concat();

提取字符串:substring();

搜索字符串:indexOf();

拆分字符串:split();

常营StringBuffer类提供的方法:

转换成String类型:toString();

连接字符串:append();

插入字符串:insert();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值