1、面向过程与面向过程对比java
面向过程:1本身动手作—>2买菜—>3洗菜—>4煮饭炒菜—>5很难吃,浪费时间ide
面向对象:1找专业对象—>2餐馆.点餐—>3餐馆,作饭—>4饭好吃,节约时间函数
面向对象的思想先找有的对象,直接拿来使用,如sun没有提供,则本身造对象spa
2、面向对象特征设计
1)封装(encapsulation)对象
2)继承(inheritance)继承
3)多态(polymorphism)内存
开发的过程:其实就是不断的建立对象,使用对象,指挥对象作事情开发
设计的过程:其实就是在管理和维护对象之间的关系it
3、java描述事物
属性:类中的成员变量
行为:类中的成员函数
4、定义类
1) 使用class关键字定义类
2) 类名就是标识符,命名规则,单词的首字母大写,多个单词的首字母大写
3) 类名后紧跟一对{}表示类的开始和结束
4) 不须要初始化值
public class Car { String color;// 成员变量 int num; // 成员变量 // 成员函数 void run() { System.out.println(color + "的车,轮胎数:" + num + "个,跑起来了"); } }
5、建立对象
class CarDemo { public static void main(String[] args) { //使用new关键字,在堆内存中开辟了空间,产生了一个实体 //为了方便使用生产的汽车,起名 // c 是Car类型,叫作类类型变量 // c是持有的引用,新生产的汽车并无直接赋值给c,就想电视遥控器同样 Car c = new Car(); c.run(); //使用对象的功能 } }
6、对象成员调用
1)成员变量
2)成员方法
public class CarDemo { public static void main(String[] args) { Car c = new Car(); //对象名.成员变量名将返回成员变量中存储的数值 int num=c.num; System.out.println(num); //对象名.成员变量名,也能够给成员变量赋值 c.num = 4; c.color = "black"; //对象名.成员方法(); c.run(); } }
例子
[root@bch04 java]# cat Cardemo.java class Car { String color; int num; void run() { System.out.println(color +"颜色的车,轮胎数:" +num +"个,跑起来了"); } } class Cardemo { public static void main(String[] args) { Car c = new Car(); c.color = "red"; c.num = 4; c.run(); } } //运行结果 [root@bch04 java]# java Cardemo red颜色的车,轮胎数:4个,跑起来了
成员变量:定义在类中的变量,在整个类内都有效,它属于对象,它随着对象的建立而建立,随着对象的消失而消失;若是没有赋初值,采用存储堆中的默认值
局部变量:定义在类的方法中的变量,只在其声明的方法内有效,使用完立刻释放空间;若是要想使用必须手动初始化
例子
[root@bch04 java]# cat Demo13.java class Car { String color = "red"; String name = "Smart"; int num = 4; void run() { if (num <4) { System.out.println("bad!"); } else { System.out.println(name +":" +color +":" +num +":run!"); } } } class CarFactory { String name; String addr; void repair(Car sc) { sc.num = 4; System.out.println("good!"); } } public class Demo13 { public static void main(String[] args){ Car sc1 = new Car(); sc1.run(); sc1.num = 3; sc1.run(); CarFactory sc2 = new CarFactory(); sc2.name = "幸福修车厂"; sc2.addr = "广东深圳"; sc2.repair(sc1); sc1.run(); } } //运行结果 [root@bch04 java]# java Demo13 Smart:red:4:run! bad! good! Smart:red:4:run!
定义:没有名字的实体
做用:当只使用一次时可使用匿名对象,执行完毕后,该对象就变成了垃圾;若是对象要多成员进行屡次调用,则必须给对象起个名字,不能继续使用匿名对象;执行方法时,能够将匿名对象做为实际参数,传递进去
例子
[root@bch04 java]# cat Demo13.java class Car { String color = "red"; String name = "Smart"; int num = 4; void run() { if (num <4) { System.out.println("bad!"); } else { System.out.println(name +":" +color +":" +num +":run!"); } } } class CarFactory { String name; String addr; Car repair(Car sc) { sc.num = 4; System.out.println("good!"); return sc; } } public class Demo13 { public static void main(String[] args){ //建立非匿名对象 Car sc1 = new Car(); sc1.run(); sc1.num = 3; sc1.run(); CarFactory sc2 = new CarFactory(); sc2.name = "幸福修车厂"; sc2.addr = "广东深圳"; sc2.repair(sc1); sc1.run(); System.out.println("**********"); //建立匿名对象,匿名对象可做为实参传递,匿名对象有方法无属性 //匿名对象一,使用一次 new Car().run(); //匿名对象二 Car sc3 = sc2.repair(new Car()); sc3.run(); } } [root@bch04 java]# java Demo13 Smart:red:4:run! bad! good! Smart:red:4:run! ********** Smart:red:4:run! good! Smart:red:4:run!