面向对象 与 面向过程的区别:
都是一种思想,思维方式,思考问题的角度.
面向过程 : "关注实现过程|步骤,需要通过几步完成?"然后一步一步执行
面向对象 : "关注我该找谁来完成 ?"实现步骤不关注,只关注这个"谁",他就是对象
面向对象是依托于面向过程的
面向对象优点:
1.更贴合于现实生活中人们的思考角度
2.面向对象更贴合生活中管理者,面向过程更贴合于执行者
3.将复杂的问题简单化
以面向对象的思想进行编程 :
将程序与生活紧密联系
类 : 描述图纸|模板
对象 : 描述生活中真实存在的事物|实例
先有类,才能根据类创建对象
模板|图纸类|javabean的定义:
public class 类名{
//属性--> 成员变量
public 数据类型 属性名 = 赋值;
public 数据类型 属性名;
//功能 --> 成员方法
public 返回值类型|void 方法名(参数列表){
方法体;
[return 返回值;]
}
}
思考:
1)手机能做什么? --> 打电话,打游戏,聊天... --> 动词 --> 成员方法(不加static修饰的成员方法) --> 功能
2)手机有什么特点|特征 --> 品牌,颜色,价格,尺寸... -->名词 --> 成员变量 --> 属性
手机测试类:
1.导包
不需要导包的类 :
1)java.lang包下的类
2)同包下的类
2.创建类型的引用|创建对象 new具有创建对象的能力
引用数据类型 引用 = new 引用数据类型();
3.使用
使用属性(赋值|获取值)
引用.属性名
使用功能
引用.功能名字(参数列表)
public class Class002_PhoneTest{
public static void main(String[] args){
//创建类型的引用|创建对象 new具有创建对象的能力
Class001_Phone phone = new Class001_Phone();
//属性赋值
phone.brand="华为";
phone.color="白色";
phone.size = 5.5;
phone.price = 6999;
//属性获取
System.out.println(phone.color);
System.out.println(phone.brand);
System.out.println(phone.size);
System.out.println(phone.price);
//使用功能
phone.call();
phone.call();
phone.call();
}
}
public class Class001_Phone{
//属性 : 品牌,颜色,价格,尺寸
public String brand;
public String color;
public double price;
public double size;
//功能 : 打电话
public void call(){
System.out.println("从前有个人长得像电话,出门就被打了...");
}
}
例二
public class Class001_Travel {
public static void main(String[] args) {
//国家对象
Country country = new Country(); //0x001
country.name="迪拜";
country.address="xxx";
country.hotel="帆船酒店";
//秘书对象
Secretary secretary = new Secretary();
secretary.name="胡歌";
secretary.age = 30;
secretary.gender = true;
secretary.bookTickets(country.name);
secretary.bookHotel(country); //0x001
System.out.println(country);
System.out.println(secretary);
}
}
public class Country {
public String name;
public String address;
public String hotel;
}
public class Secretary {
public String name;
public boolean gender; //false 女 true男
public int age;
//预定机票
//返回值: void
//参数 : 国家名字 String countryName
public void bookTickets(String countryName){
System.out.println(name+"正在为您预定去"+countryName+"的机票...");
}
//预定酒店
//当 方法的形参与为一个对象的多个属性值,可以直接传递对象
public void bookHotel(Country country){
System.out.println(name+"正在为您预定"+country.name+"的"+country.hotel);
}
}



