随着编程经验的不断积累,我对编程的理解也在不断的更新变化,刚开始接触到的C语言,感觉比较简单,而且非常有感觉,很有意思,后来是数据结构,然后在学习数据结构的时候了解到编程都有一种非常神秘的算法存在,需要用心体会,再后来就是接触到了Java,我在Java中接触到的最多的就是利用面向对象的思想编程,当时,感觉使用这种面向对象思想编程非常的别扭,非常的不舒服,没有面向对象更加直接,后来,在逐渐Java的摄入学习和并且也接触到其他的一些编程语言,逐渐的认识到了面向对象思想的重要性以及精髓所在。在我们的日常的工作中面向对象真的非常的重要,非常的重要,非常的重要。重要的事情说三遍。下面是我个人利用闲暇时间总结的一些基本但是非常的重要的基本概念。
弄懂这些基本概念是正确的理解和深入学习面向对象思想的基础。
首先应该记住的是,在面向对象的世界里面,一切皆对象
顺带一句,在Linux的世界里面,一切皆文件。
1.所有类的基类是:
对象(Object) [这个单词很重要!!!]
2.什么是对象?
对象是对客观事物的抽象。
3.什么是类?
类是对象的抽象。
4.类和对象的联系?
类是对象的模板,对象是类的实例
5.对象和类的区别?
对象占内存,类不占内存。
6.什么是面向对象?
面向对象(Object Oriented)是一种软件开发的方法,也是一种编程的思想,就是所谓套路(更直白的说法),是对客观事物理解和抽象的方法。
7什么是属性和方法?
属性是用来描述对象特性的数据,方法是数据的变化过程,是可重用的代码段。
8.面向对象的三大基本特性?
(1)封装:把客观事物封装成抽象的类,隐藏对象的属性和实现细节,仅仅对外公开接口。
(2)继承:子类可以继承父类的属性和方法,提高了代码的重用性和可扩展性。
(3)多态:通俗的理解就是树干和树枝的关系;主要分为以下两种类型:
a,向上转型:子类对象->父类对象
对象向上转型,程序会自动完成;格式:
对象向上转型:父类 父类对象=子类实例;
b,向下转型:父类对象->子类对象
对象向下转型,必须明确指名要转型的子类类型,格式:
对象向下转型:子类 子类对象=(子类) 父类实例
(这个属于强制转换类型)
这里写的比较全面,但是对于JS来说,没有这么复杂。
实现多态的方法主要有重写(overwrite)和重载(overload 有些语言不支持重载)
9.什么是重写和重载?
(1)重写(overwrite):子类可以重写父类非私有的方法。
(2)重载(overload):一个类中可以有多个同名的方法,这些方法的参数不能相同。
一个类中可以有多个同名不同参的方法。
10.什么是值类型和引用类型?
(1)值类型:传值。
(2)引用类型:传址。
11.值类型和引用类型的区别?
(1)值类型:一人一份内存。
(2)引用类型:共用一份内存
打个比方:值类型是私家车,一人一辆,你车坏了你迟到,不影响别人。引用类型是公交车,大家公用一辆,车一坏全车人迟到。
12,Java中String是值类型还是引用类型?
引用类型
Java中判断两个字符串相等应该用str1.equal(str2),用==不准确。
public static void main(String[] args) { String str1 = "string"; String str2 = "string"; String str3 = new String("string"); System.out.println(str1 == str2); //true System.out.println(str1 == str3); //false System.out.println(str1.equals(str2)); //true System.out.println(str1.equals(str3)); //true }
13,什么是计算机程序?
计算机是可以完成某些功能的计算机指令集。
计算机程序由数据结构和算法构成。
什么是数据结构?什么是算法?
数据结构是计算机存储,组织数据的方式。
算法是计算机执行计算过程的具体描述。
好的数据结构和算法会带来更高的运行,存储效率。数据结构往往和高效的检索算法和索引技术有关。
通常,计算机程序需要经过编译和链接成为人们难以理解但是计算机理解的格式,然后执行。不需要编译就可以运行的称之为脚本程序。
转载请注明原文地址:http://www.cnblogs.com/zhangyukof/p/6829538.html