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);
}
}
}
}