Re: Object Oriented

面向对象(Object Oriented,OO)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。
好的,以上来自互联网百度内容,无疑可以想到Java为什么要用到面向对象来解决问题,问题太麻烦了所以懒得自己去想,拜托喜欢想问题的哲学家多好啊,于是乎,我们面向了对象。

  • A:我们学习编程是为了什么
    • 为了把我们日常生活中实物用学习语言描述出来
  • B:我们如何描述现实世界事物
    • 属性 就是该事物的描述信息(事物身上的名词)
    • 行为 就是该事物能够做什么(事物身上的动词)
  • C:Java中最基本的单位是类,Java中用class描述事物也是如此
    • 成员变量 就是事物的属性
    • 成员方法 就是事物的行为
  • D:定义类其实就是定义类的成员(成员变量和成员方法)
    • a:成员变量 和以前定义变量是一样的,只不过位置发生了改变。在类中,方法外。
    • b:成员方法 和以前定义方法是一样的,只不过把static去掉,后面在详细讲解static的作用。
  • E:类和对象的概念
    • a:类:是一组相关的属性和行为的集合(我们班所有的同学都具备相同的属性和行为,比如:姓名,年龄,学习,这样就把所有的学生成为学生类)
    • b:对象:是该类事物的具体体现(说某个同学时,他都具备自己特有的属性和行为)
    • c:举例:
    • 类 学生
    • 对象 具体的某个学生就是一个对象
      比如:车是一个类,具体的开的奔驰、宝马,就是对象

文字是最好的架构,我们可以画出无数个一的形状,但它代表的也仅仅是一,解释就没必要了。

成员变量和局部变量的区别

  • A:在类中的位置不同
    • 成员变量:在类中方法外
    • 局部变量:在方法定义中或者方法声明上
  • B:在内存中的位置不同
    • 成员变量:在堆内存(成员变量属于对象,对象进堆内存)
    • 局部变量:在栈内存(局部变量属于方法,方法进栈内存)
  • C:生命周期不同
    • 成员变量:随着对象的创建而存在,随着对象的消失而消失
    • 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
  • D:初始化值不同
    • 成员变量:有默认初始化值
    • 局部变量:没有默认初始化值,必须定义,赋值,然后才能使用。

文字看的多了很容易分心,不看又理解不了,这时候就得靠面向对象来实现懒人操作了。

class Demo1_Person {
public static void main(String[] args) {
	Person p = new Person();
	p.speak();
}
}
class Person {
String name;						//成员变量
int num;public void speak() {
	int num = 10;						//x和num都是局部变量
	System.out.println(name);

	System.out.println(num);
	}
}

还有匿名对象,应该不用特意写出来吧,用的机会不多。接下来就是面向对象的三大特征之一的封装了,至少有人问起封装的好处是什么可以回答:

  • 隐藏实现细节,提供公共的访问方式
  • 提高了代码的复用性
  • 提高安全性。

具体的提供访问方式,就是程序员喜闻乐见的set和get方法了,一遍一遍的敲,人会使用工具真是太棒了。

class Demo2_Phone {
public static void main(String[] args) {
	Phone p1 = new Phone();
	p1.setBrand("三星");
	p1.setPrice(5288);

	System.out.println(p1.getBrand() + "..." + p1.getPrice());
	p1.call();
	p1.sendMessage();
	p1.playGame();
	}
}
/*
 手机类
 属性:品牌brand,价格price
行为:打电话call,发短信sendMessage,玩游戏,playGame
 */
class Phone { // java bean
private String brand; // 品牌
private int price; // 价格

public void setBrand(String brand) { // 设置品牌
	this.brand = brand;
}

public String getBrand() { // 获取品牌
	return this.brand; // this.可以省略,你不加系统会默认给你加
}

public void setPrice(int price) { // 设置价格
	this.price = price;
}

public int getPrice() { // 获取价格
	return price;
}

public void call() { // 打电话
	System.out.println("打电话");
}

public void sendMessage() { // 发短信
	System.out.println("发短信");
}

public void playGame() { // 玩游戏
	System.out.println("玩游戏");
	}
}

构造方法?只能是代码里见分晓了:

class Demo3_Student {
public static void main(String[] args) {
	Student s1 = new Student();					//使用空参构造
	s1.setName("张三");							//设置姓名
	s1.setAge(23);								//设置年龄

	System.out.println("我的姓名是:" + s1.getName() + ",我的年龄是:" + s1.getAge());
	//getXxx()获取属性值,可以打印,也可以赋值给其他的变量,做其他的操作
	Student s2 = new Student("李四",24);
	s2.show();									//只是为了显示属性值
	}
}
class Student {
private String name;							//姓名
private int age;								//年龄

public Student(){}								//空参构造

public Student(String name,int age) {			//有参构造
	this.name = name;
	this.age = age;
}

public void setName(String name) {				//设置姓名
	this.name = name;
}

public String getName() {						//获取姓名
	return name;
}

public void setAge(int age) {					//设置年龄
	this.age = age;
}

public int getAge() {							//获取年龄
	return age;
}

public void show() {
	System.out.println("我的姓名是:" + name +  ",我的年龄是:" +  age);
	}
}

还用解释吗?记得懒人思想就好。
ps:每日一词,六日放假不是很正常的嘛。
念奴娇

盘风浸枕,月寒偿不去,恨君游戏。菡萏更残花更细,似剪一生无忌。指点东山,湘江残雨,飞落闲交臂。重来重庆,问津能度我几。

我恁举月还星,弄花含玉,对影迟乡计。梦里寻风吹落絮,今夕纵歌无礼。且作生人,还听何必,先遣红尘济。半言奀语,暂输棋画三气。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值