类和对象

类和对象
一、开发平台
eclipse
java语言
二、理论知识
1.类和对象
1)什么是类
生活中,具有相同特征和行为(功能)的对象
程序中,类是具有相同属性和方法的抽象的定义。属性是特征的抽象化,方法是行为(功能)的抽象化。
注意:比如手机,它不是一个对象,需要具体指出一个手机,比如这部手机,才是一个对象。
    
如图,手机有很多种类,对象必须是具体指出的某一个
2)类的格式
public class 类名{
修饰符 数据类型 属性名;——属性
修饰符 返回值 方法名(数据类型 参数名)——方法
{}
}
3)类的组成:属性、方法。
属性是由对象的特征定义的
方法分为两类:1.普通方法  2.构造方法
普通方法是由对象的行为定义的。

4)实例化(在main主类中进行)
关键字是new
类名 对象名=new 类名();
5)调用属性和方法
对象名.属性;
对象名.方法(参数值);
2.构造方法与重载

1)构造方法
格式
访问修饰符  构造方法名(数据类型 参数名,...){
}
注意:a.构造方法名必须要和类名完全一致;
      b.构造方法不能定义返回值类型;
      c.Java会默认提供一个无参数的构造方法
      d.如果在类中定义了其他的构造方法,默认的构造方法就会被覆盖,无法再使用;此时只能使用自定义的构造方法。
2)构造方法的用途
实例化对象的格式:类名 对象名  = new 构造方法名(参数值,...);
a.用来实例化对象
b.可以给属性设置初始值.
3)构造方法和普通方法的区别
a.构造方法的名和类名一样,普通方法不一样
b.构造方法没有返回值类型,而普通方法有
2.方法重载
1)用重载的情形
同一个行为(动作),只是具体的参数不一样,比如说两个人都是买东西这个方法,但是两个人买的内容(参数)是不一样的。
2)重载的条件
a.方法名相同。
b.参数个数,类型,顺序至少有一个不同。
注意:普通方法和构造方法都能被重载
3.this关键字
a.用途
1)参数名和属性名一致,可以使用this来做区分(加上this的表示属性,没有加的则表示参数)
(Java会采用就近原则,优先使用离其最近的参数)
2)
this(参数值,...);调用对应参数的构造方法。
this.方法名(参数值,...);调用对应参数的普通方法。
b.this表示的内容
表示当前调用方法的对象。谁在调用方法,那么方法中的this就是谁。
this(参数值,...);表示对应对象的构造方法
比如Student stu1=new Student(){
stu1.study();}
现在是stu1在调用,那么this就是指的stu1.
4.对象与值的内存分配
1)Student stu=new Student(……);stu存放在栈中,堆中存放stu对应的 student类中的属性和方法,栈存储堆的首地址,并指向堆。
三、应用举例
1.类和对象
情景:小明在写数学作业,当写完后,小明停止写数学作业。
分析:
对象:小明
特征:姓名,作业
行为:写(数学作业)
作业
特征:名字,数量
代码:
1)定义一个学生类
public class Student{
public String name;
public int score;
public void write(Homework a){
a.score--;
System.out.println(name+”正在写”+a.name+”作业,剩余作业量是”+a.score);
If(a.score==0){
System.out.println(name+”已经写完”+a.name+”作业”);

2)定义一个作业类
public class Homework{
public String name;
public int score;

3)主类
public class manager{
public static void main(String[] args){
Student stu=new Student();
stu.name=”小明”;
stu.score=3;
Homework h=new Homework();
h.score=4;
h.name=”数学”;
while(h.score>0){
stu.write(h);
}
2.构造与重载
情形: 奥特曼和小怪兽进行PK,直到一方的血量为0时结束战斗,输出谁胜利了!
如果奥特曼胜利,则奥特曼和Boss进行PK,直到一方的血量为0时结束战斗,输出谁胜利了!
1)定义奥特曼类
public class aoteman {
 public String name;
 public int blood;
 
 public void pk(xiaoguaishou xgs){
			xgs.blood--;
	System.out.println(xgs.name+"剩余血量是"+xgs.blood);
	if(xgs.blood==0)
		System.out.println(name+"胜利了!");
 }
 
 public void pk(boss bo){
	 			bo.blood--;
		System.out.println(bo.name+"剩余血量是"+bo.blood);
				if(bo.blood==0)
			System.out.println(name+"胜利了!");
	 
 }
}

2)定义小怪兽类
public class xiaoguaishou {
	 public String name;
	 public int blood;
	 
	 public void pk(aoteman atm){
		 
				atm.blood--;
			System.out.println(atm.name+"剩余血量是"+atm.blood);
						if(atm.blood==0)
				System.out.println(name+"胜利了!");
	 }
}

3)定义boss类
public class boss {
	 public String name;
	 public int blood;
	 
	 public void pk(aoteman atm){
		 
				atm.blood--;
			System.out.println(name+"剩余血量是"+blood);
			
				
			
			if(atm.blood==0)
				System.out.println(name+"胜利了!");
		 }
		 
	 }

4)定义总类
public class managei {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
aoteman atm=new aoteman();
xiaoguaishou xgs=new xiaoguaishou();
boss bo=new boss();
atm.name="奥特曼";atm.blood=8;
xgs.name="小怪兽";xgs.blood=8;
bo.name="boss";bo.blood=8;

while(atm.blood>0&&xgs.blood>0){
atm.pk(xgs);
if(xgs.blood==0){
	while(atm.blood>0&&bo.blood>0)
	bo.pk(atm);
if(atm.blood==0);
break;
}


xgs.pk(atm);
if(atm.blood==0){
	break;
}
}
}
	}

四、结果截图
1。
.
2.

奥特曼和小怪兽进行PK,直到一方的血量为0时结束战斗,输出谁胜利了!
如果奥特曼胜利,则奥特曼和Boss进行PK,直到一方的血量为0时结束战斗,输出谁胜利了!
资源下载链接为: https://pan.quark.cn/s/1bfadf00ae14 华为移动服务(Huawei Mobile Services,简称 HMS)是一个全面开放的移动服务生态系统,为企业开发者提供了丰富的工具 API,助力他们构建、运营推广应用。其中,HMS Scankit 是华为推出的一款扫描服务 SDK,支持快速集成到安卓应用中,能够提供高效且稳定的二维码条形码扫描功能,适用于商品扫码、支付验证、信息获取等多种场景。 集成 HMS Scankit SDK 主要包括以下步骤:首先,在项目的 build.gradle 文件中添加 HMS Core 库 Scankit 依赖;其次,在 AndroidManifest.xml 文件中添加相机访问互联网访问权限;然后,在应用程序的 onCreate 方法中调用 HmsClient 进行初始化;接着,可以选择自定义扫描界面或使用 Scankit 提供的默认扫描界面;最后,实现 ScanCallback 接口以处理扫描成功失败的回调。 HMS Scankit 内部集成了开源的 Zxing(Zebra Crossing)库,这是一个功能强大的条码二维码处理库,提供了解码、生成、解析等多种功能,既可以单独使用,也可以与其他扫描框架结合使用。在 HMS Scankit 中,Zxing 经过优化,以更好地适应华为设备,从而提升扫描性能。 通常,ScanKitDemoGuide 包含了集成 HMS Scankit 的示例代码,涵盖扫描界面的布局、扫描操作的启动停止以及扫描结果的处理等内容。开发者可以参考这些代码,快速掌握在自己的应用中实现扫码功能的方法。例如,启动扫描的方法如下: 处理扫描结果的回调如下: HMS Scankit 支持所有安卓手机,但在华为设备上能够提供最佳性能体验,因为它针对华为硬件进行了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值