类和对象是面向对象的产物,如果java这门语言没有面向对象的特点,就没有类(Class)和对象(Object)。
面向过程和面向对象是程序设计的思维方式。 面向对象从面向过程这种思维衍生而来。
面向对象
把要解决的问题,分解成组成部分,每个部分就是解决问题的组件,每个组件用类(Class)表示,而函数是包含在类中。面向对象在解决复杂问题的时候,相比较跟符合人的思维方式,,但是理解起来比较抽象。
面向对象考察人的抽象思维。
在Java中,万物皆对象,用Class来描述对象,类是对象的抽象描述。对象是由属性(静态特征)和行为(动态特征)组成。对象的名称用类名表示,java中用成员变量来表示类的属性。
现在写的类不是静态(static),用面向对象的方法。
类名首字母大写。
面向过程
把要解决的问题,分解成若干步骤,每个步骤用函数表示,然后再main中做函数的依次调用。(理解:面向过程的编写最小单位是函数)典型的语言是C语言。
面向过程和面向对象的区别
面向对象着眼于全局,面向过程着眼于局部。
一个java文件可以有多个类,但是只有一个类是public,并且这个public的类和文件名称相同,而且main方法要且在public类中才能调用
This.hero=”寒冰”//当前对象的引用this.变量表示调用成员变量,也可以不用this,直接 hero=“寒冰”
变量在赋值的时候遵循就近原则,局部变量近就用局部变量,这个时候就可以用this了
/**
* 键盘控制移动
*/
String drive;
/**
* 移动行为
*/
public void move(char a) {
switch (a) {
case 'w':
this.drive="up";
break;
case 's':
this.drive="down";
break;
case 'a':
this.drive="lefe";
break;
case 'd':
this.drive="right";
break;
default:
break;
}
System.out.println("我是"+h.name+"我正在向"+this.drive+"方向走");
}
H.name为什么不行?
错误!:
hero h= new hero();//实例化
h.name = "寒冰射手";
h.sex = '女';
h.country="艾欧尼亚?";
h.weapon="弓箭";
h.bloodstain=1000;
move('w');
//这句是错误的,它的意思是调用本类里的move函数,事实上,在本类(main类)里并没有move函数,所以没用!
所以这是调用本类方法。
调用其他类,就要加上“h.”表示调用hero类里的move方法。
这样才有效。
错误!:
Class hero(){
}//这不是定义一个类!
正确方法:
class hero{
}
如下:
编写一个类:
class hero{
/**
* 名字
*/
String name;
/**
* 性别
*/
char sex;
/**
* 国家
*/
String country;
/**
* 生命值
*/
double bloodstain;
/**
* 武器
*/
String weapon;
/**
*
*/
/**
* 键盘控制移动
*/
String drive;
/**
* 移动行为
*/
public void move(char a) {
switch (a) {
case 'w':
this.drive="up";
break;
case 's':
this.drive="down";
break;
case 'a':
this.drive="lefe";
break;
case 'd':
this.drive="right";
break;
default:
break;
}
System.out.println("我是"+this.name+"我正在向"+this.drive+"方向走,快来辅助我");
}
}