Java学习_day008面向对象(OOP):对象和类

面向对象:OO
面向对象的分析:OOA
面向对象的设计:OOD
面向对象分析与设计:OOAD——目标
面向对象的编程:OOP——起始点
高质量代码的要求(OO终极目标):复用性好、拓展性好、维护性好、可移植性好、健壮性好、效率高、可读性好…

一、对象和类

1.什么是对象和类?

现实中存在的很多很多的对象(东西),基于对象抽出类;
1.1 对象:软件中真实存在的单个东西
1.2 类:类型/类别,表示一类个体——自己所设计出的一种数据类型(引用类型)
1.3 类是对象的模板,对象是类的集体实例;
1.4 类中包含两种东西:
①对象所共有的属性/特征——变量;
②对象所共有的行为/动作——方法

1.5 一个类可以创建多个对象

如何创建类?

对于类而言,创建类:class Student{ }
基于对象抽出,不需要main

package oop_day01;
//学生类————自己制作的一个数据类型(引用类)
public class Student {
//成员变量
	String name;
	int age ;
	String address;
	//方法
	void study(){
		System.out.println(name+"在学校");	
	}
	void sayhi(){
		System.out.println("大家好我叫"+name+"今年"+age+"岁了,家住"+address);	
	}
}

测试类必须有main,

package oop_day01;
//学生类的测数
public class Student_Test {

	public static void main(String[] args) {
		
		Student zs=new Student();//创建学生对象zs
		//使用类中的东西:
		zs.name="张三";
		zs.age=25;
		zs.address="shanghai";
		//调用方法:
		zs.study();
		zs.sayhi();
		
		Student ls=new Student();//创建学生对象ls
		ls.name="李四";
		ls.age=44;
		ls.address="hubie";
		ls.study();
		ls.sayhi();
	}

}

如何创建对象?

Student zs = new Student();

new Student()——真正的创建对象

		
		
		//         引用
	//  数据类型   引用类型变量   指向         对象
		Student     ls             =     new Student();
		//1.创建了一个学生对象
		//2.给所有成员变量赋默认值
		ls.name="李四";
		ls.age=44;
		ls.address="hubie";
		ls.study();
		ls.sayhi();
	}

}
如何访问成员?

类似于方法的调用

补充:
创建对象之后不赋值,直接访问方法也不会报错,其中成员变量为初始默认值;
String也为引用类型,其默认值为null;

射击游戏的需求:
1.参与的角色:英雄机、子弹、小敌机、大敌机、小蜜蜂、天空
2.角色关系:
1) 英雄机发射子弹,子弹分单倍双倍火力
2)子弹射击敌人(小敌机、大敌机、小蜜蜂),若射击到了:
2.1)子弹直接消失、敌人先爆炸后消失
2.2)子弹消灭小敌机——得一分;
子弹消灭大敌机——锝三分;
子弹消灭小蜜蜂——得一条命、得二十次双倍火力(40火力值)
3) 敌人(小敌机、大敌机、小蜜蜂)和英雄机相撞,若撞上了:
3.1)敌人先爆炸后消失
3.2)英雄机减一条命,火力值清零
4) 英雄机、子弹、小敌机、大敌机、小蜜蜂都在天空上飞
对象:英雄机、子弹、小敌机、大敌机、小蜜蜂、天空
类:Hero、Airplane、bigAirplane、Bee、Bullet、class Sky

class Hero{
宽、高、x、y、命、火力值
void shoot(){ } //发射子弹
void moveTo(){ } //随鼠标移动,(x、y的变化)
void step(){ } //英雄机移动,尾炎图片变化
}

class Airplane{
宽、高、x、y、speed
void step(){ } //小敌机y移动
}
class bigAirplane{

}
class Bee{

}
class Bullet{

}
class class Sky{

}

练习
package oop_day01;
//学生类————自己制作的一个数据类型(引用类)
public class Student {
//成员变量
	String name;
	int age ;
	String address;
	//方法
	void study(){
		System.out.println(name+"在学校");	
	}
	void sayhi(){
		System.out.println("大家好我叫"+name+"今年"+age+"岁了,家住"+address);	
	}
}
/*5 package oop_day01;

public class Student {

	String name;
	String address;
	int age;
	void study(){
		System.out.println(name+"in school");
	}
	void sayhi(){
		System.out.println("hi name:"+name+";age:"+age+";address:"+address);
	}
}
/*4 package oop_day01;

public class Student {

	String name;
	String address;
	int age;
	void study(){
		System.out.println(name+"in school");
	}
	void sayhi(){
		System.out.println("hi name:"+name+";age:"+age+";address:"+address);
	}
}
/*3 package oop_day01;

public class Student {

	String name;
	String address;
	int age;
	void study(){
		System.out.println(name+"in school");
	}
	void sayhi(){
		System.out.println("hi name:"+name+";age:"+age+";address:"+address);
	}
}
/* 2package oop_day01;

public class Student {

	String name;
	String address;
	int age;
	void study(){
		System.out.println(name+"in school");
	}
	void sayhi(){
		System.out.println("hi name:"+name+";age:"+age+";address:"+address);
	}
}
/*1 package oop_day01;

public class Student {

	String name;
	String address;
	int age;
	void study(){
		System.out.println(name+"in school");
	}
	void sayhi(){
		System.out.println("hi name:"+name+";age:"+age+";address:"+address);
	}
}*/
package oop_day01;
//学生类的测数
public class Student_Test {

	public static void main(String[] args) {
		
		Student zs=new Student();//创建学生对象zs
		//使用类中的东西:
		zs.name="张三";
		zs.age=25;
		zs.address="shanghai";
		//调用方法:
		zs.study();
		zs.sayhi();
		
		//1.创建了一个学生对象
		//2.给所有成员变量赋默认值
		//         引用
	//  数据类型   引用类型变量   指向         对象
		Student   ls         =   new Student();//创建学生对象ls
		ls.name="李四";
		ls.age=44;
		ls.address="hubie";
		ls.study();
		ls.sayhi();
		
		//5 Student ww=new Student();
		//4 Student ww=new Student();
		//3 Student ww=new Student();
		//2 Student ww=new Student();
		//1 Student ww=new Student();
	}

}
/*5 package oop_day01;

public class Student_Test {

	public static void main(String[] args) {

		Student zs=new Student();
		Student ls=new Student();
		zs.name="zhangsan";
		zs.age=546;
		zs.address="huanggang";
		ls.age=332;
		ls.name="lisi";
		ls.address="hy";
		zs.sayhi();
		zs.study();
		ls.sayhi();
		ls.study();
	}

}
/* 4package oop_day01;

public class Student_Test {

	public static void main(String[] args) {

		Student zs=new Student();
		Student ls=new Student();
		zs.name="zhangsan";
		zs.age=546;
		zs.address="huanggang";
		ls.age=332;
		ls.name="lisi";
		ls.address="hy";
		zs.sayhi();
		zs.study();
		ls.sayhi();
		ls.study();
	}

}
/*3 package oop_day01;

public class Student_Test {

	public static void main(String[] args) {

		Student zs=new Student();
		Student ls=new Student();
		zs.name="zhangsan";
		zs.age=546;
		zs.address="huanggang";
		ls.age=332;
		ls.name="lisi";
		ls.address="hy";
		zs.sayhi();
		zs.study();
		ls.sayhi();
		ls.study();
	}

}
/*2 package oop_day01;

public class Student_Test {

	public static void main(String[] args) {

		Student zs=new Student();
		Student ls=new Student();
		zs.name="zhangsan";
		zs.age=546;
		zs.address="huanggang";
		ls.age=332;
		ls.name="lisi";
		ls.address="hy";
		zs.sayhi();
		zs.study();
		ls.sayhi();
		ls.study();
	}

}
/*1package oop_day01;

public class Student_Test {

	public static void main(String[] args) {

		Student zs=new Student();
		Student ls=new Student();
		zs.name="zhangsan";
		zs.age=546;
		zs.address="huanggang";
		ls.age=332;
		ls.name="lisi";
		ls.address="hy";
		zs.sayhi();
		zs.study();
		ls.sayhi();
		ls.study();
	}

}*/
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值