Java高级-Java面向对象

366 阅读2分钟

Java面向对象

概念:面向对象是基于面向过程的编程语言

面向过程:强调的是每一个功能步骤

面向对象:强调的是对象,然后由对象去调用功能

面向对象的思想的特点:

1:是一种更符合我们思想习惯的思想

2:可以将复杂的事情简单化

3:我们从执行者编程了指挥者

类与对象

现实世界中是如何描述一个事物的呢?

举例:

(类)学生:学号,姓名,性别,专业,班级,电话,地址

(对象)班长,学委,

我们学习编程语言,是为了模拟现实世界的事物,而我们学习的编程语言中最基本的单位就是:类

所以,我们就应该把事物通过类的形式来体现,由此,我们就得到现实世界事物和类的对应关系。

个人认为:类:就是我们设计东西的模板或者图纸

对象:就是将我们设计好的模板或者图纸搭建起来。

类:关键字是class,类就是创建对象的模板,类里属性和方法称之为类成员。

对象:是类的实例化而产生的对象,关键字是new.

实例化的格式:类名 变量名 = new 类名();

类与对象的联系区别,1.类是静态创建的,2,对象是动态实例,3程序操作的是对象而不是类,4建模时得到类而不是对象,联系:对象是类的实例化产生的

根据王者荣耀人物进行类的设计(自行在Eclipse运行)

package Java基础06_面向对象;
/*
 * 属性:
 * 名字,攻击力,移动速度,护甲,攻速,法强,血量蓝量,技能名称 大招
 */
public class Hero {
	String name;
	int gongjili;
	String jineng1_name;
	String jineng2_name;
	String dazhao_name;
	
	void jineng1() {
		System.out.println(jineng1_name);
	}
	void jineng2() {
		System.out.println(jineng2_name);
	}
	void dazhao() {
		System.out.println(dazhao_name);
	}

}
package Java基础06_面向对象;
/*
 * 含有主方法的类称之为测试类
 */
public class HeroMain {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Hero houyi =new Hero();
		houyi.name="后羿";
		houyi.gongjili=11;
		houyi.jineng1_name="技能1";
		houyi.jineng2_name="技能2";
		houyi.dazhao_name="大招";
		
       houyi.jineng1();//技能1
       houyi.jineng2();//技能2
       houyi.dazhao();//大招

	}

}

例二:

package Java基础06_面向对象;

public class ShouQiang {
	String name;
	double zhongliang;
	boolean flag;
	int danliang;
	void kaiqiang() {//开枪
		System.out.println("一枪打死个人");
	}
	void huandan() {//换弹
		System.out.println("正在填充子弹");
		danliang=12;
	}
	void miaozhun() {
		if(flag) {
			System.out.println("开镜瞄准");
		}else {
			System.out.println(name+"瞄准");
		}
	}

}
package Java基础06_面向对象;

public class ShouQiangMain {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ShouQiang sq = new ShouQiang();
		sq.name="沙鹰";
		sq.zhongliang=6.44;
		sq.flag=true;
		sq.danliang=12;
		
		System.out.println("名枪:"+sq.name);
		for(int i=0;i<=sq.danliang;i++) {
			System.out.println("开第"+i+"枪");
			if(i==sq.danliang&&sq.flag==true) {
				 System.out.println(sq.name+"开镜瞄准"); 
				System.out.println("弹量不足,请及时填充子弹!");
				System.out.println("--------------------------------");
				sq.huandan();
				System.out.println("弹量已经填充:"+sq.danliang);
			}
		}
	}
}