java学习知识记录之对象

1.1抽象

所有的编程语言都是提供抽象机制的,汇编语言是对底层机器的轻微抽象,接着许多面向过程的语言是对汇编语言的抽象,这些语言要求在解决问题时基于计算机的结构,不害死以问题的结构来考虑。

面向对象编程允许根据问题来表述问题,而不是根据运行解决方案的计算机来描述问题。每个对象都有状态和操作,用户可以根据状态执行这些行为。Alan Kay总结了第一个面向对象语言Smalltalk的5个基本特性。

a.万物皆对象

将对象视为奇特的变量,他可以存储数据,除此之外,你还可以要求它在自身上执行操作。理论上讲,可以抽取待解决问题的任何概念化构建,将其表示为程序中的对象。这里给出一个交换两数值的例子,也是面试常见的题目。


 public class ChangeTwoNumber {  	public static void main(String[] args) { 		// TODO Auto-generated method stub 		ChangeTwoNumber c=new ChangeTwoNumber(); 		Value v= c.new Value(4,5); 		System.out.println("a:"+v.a+"b:"+v.b); //		c.swap(v); 		c.swap(4,5); 		System.out.println("a:"+v.a+"b:"+v.b); 		  	} 	 private void swap(Value v) { 		// TODO Auto-generated method stub 		 int temp=v.a; 		 v.a=v.b; 		 v.b=temp; 	} 	 //形参改变,不能反作用于实参,无效的改变 	 private void swap(int a,int b){ 		 int temp=a; 		 a=b; 		b=temp; 		  	 } 	class Value{ 		int a; 		int b; 		public Value(int a,int b){ 			this.a=a; 			this.b=b;	 		}	 	} }

上述例子说明了对象是奇特的变量,可以存储数据。

b.程序是对象的集合

对象之间通过发送消息也就是调用方法来告知彼此索要做的

c.每个对象都有自己的由其他对象所构成的存储

对这句话的理解,百度到的解释是,一座房子,有砖、玻璃、木头……房子即是一个对象,而砖、玻璃、木头……分别又都是一个对象。

一个人,主要部分是细胞没错吧?每个对象(如:房子)都有自己的由其他对象(砖、玻璃、木头……)所构成的储存。

每个对象(如:你)都有自己的由其他对象(细胞、毛发、指甲……)所构成的储存

d.每个对象都拥有其类型

每个对象都是某个类的实例,因此每个对象都属于某个类。

e.某一特定类型的多有对象都可以接收同样的消息

每个对象都是相同类型的实例,都有相同的一面





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值