面向对象1
面向对象(oo)
面向过程: 考虑的是过程和步骤 think how to do !
面向对象: 考虑的是有几个对象 对象如何直接访问 这些对象能够干什么
think what to do !
例题 :开车去北京旅游
面向过程:1.打开车门 2.启动 3经过九江 4. 武汉.........
面向对象: 车 (开车去北京)
基本的概念:
对象:一切皆对象。在JAVA的眼里,无论什么都是对象。
对象的组成:
属性:名词(成员变量)
行为:动词(方法)
类:对象的模板。具有相同属性和行为的一组对象的集合。
对象和类的区分 对象是具体存在的 类的抽象的概念。
在JAVA中,先创建类 再通过类在创建具体的对象。
在同一个文件中,只能有一个public类是在main方法下的。
字符串连接符:当+号一边是字符串类型的时候+号就是字符串连接符。“abc+dfg”
例题:
public class Test{
Public static void main(String args[]){
Person p = new Penson();
P.name= '"jack"
P.age="20"
}
}
class Person{
String name;
Int age;
}
pcublic void sleep(){
System.out.println(name+"is sleeping")
}
构造方法(构造器,构造函数)
最大的作用就是来创建对象!
构造方法是一种特殊的方法
(1). 与类名相同
(2)没有返回值类型,连void都没有
(3)每个类都有一个隐式的构造方法,隐式的构造方法没有参数没有方法体
(4)如果我们手动的添加了一个显示的构造方法,隐式的就不存在了
(5)构造方法只能和new关键字一起使用来创建对象,不能调用。
Person p = new Penson();
例题
Tom猫抓住了老鼠jacky,jacky哭了
1.先找到几个对象(猫和老鼠)
2.通过对象找出有几个类
3.找出每个类中有哪些属性和方法
4,.调用方法实现功能
Public class Test{
Publuc static void main(String args[]){
Mouse m=new Mouse();
M.name = "jack";
Cat cat = new Cat();
Cat.name = "tom";
cat.catchMouse(m);
}
}
class Cat{
String name;
public void catchMouse(mouse m){
m.cry();
}
}
Class mouse{
String name;
public void cry(){
System.out.println("name+is crying");
}
}
张三吃了李四的一根头发
public class Test{
public static void main (String arg[ ]){
Penson p1 = new penson();
P1.name = "张三";
Penson p2 = new penson();
P2.name = "张三";
Hair h1 = new Hair();
p2.h = h1;
p1.eat(p2.h);
}
}
class penson {
String name;
Hair h;
public void eat(Hair hair){
}
}
class Hair {
}
坦克大战
专家模式:方法改变谁的状态。方法就属于谁,
例如:
车类有一个属性sheep 如果 sheep的值为100 代表这个车在高速行驶, 如果这个车停止,则sheep=0;
状态:属性的值(成员变量的值)
改变对象的状态其实就是改变成员变量的值。
引用数据类型(类,数组等等)