------面向对象和面向过程区别?
C语言就是面向过程的语言,面向过程其实就是在强调程序过程,第一步怎么做,第二步怎么做......
java语言就是面向对象的,面向对象其实就是在强调对象,在对象里面封装程序的过程
------面向对象开发与设计是什么?
面向对象开发:不断创建对象,使用对象,指挥对象做事情
面向对象设计:在管理对象和维护对象之间的关系
------类,对象,属性,行为是什么?
类:是java中的基本单位(class关键字就描述类),是一组相关属性和行为的集合,比如:学生就是一个类
对象:一类事务的具体体现,比如:具体的一个学生就是学生类的一个对象
属性:该事物的描述信息,也就是事物身上的名词
行为:该事务能做什么,该事务身上的动词
定义类其实就是定义类的成员,成员包括成员变量,成员方法;
成员变量:其实就是事物的属性;
成员方法:其实就是事物的行为
------怎么创建对象以及使用成员?
创建对象:类名 对象名 = new 类名( );
对象名其实就是一个合法的标识符,如果一个单词,那就所有字母小写;如果有多个单词,那么第二个单词开始每个单词首字母大写;
假设有一个Teacher类,该类有一个name属性,以及一个eat()方法,那么怎么创建这个类的一个对象并且使用它的成员呢?
创建对象:Teacher t = new Teacher();
使用成员变量name: t.name = "张三"; (对象名.属性名)
使用成员方法eat(): t.eat();(对象名.方法名)
------成员变量与局部变量区别?
1.在类中的位置不同
成员变量是在类中方法外面;局部变量是在方法声明里面以及方法体内
2.在内存中的位置不同
成员变量是在堆内存;局部变量是在栈内存
成员变量属于对象,对象进堆内存;而局部变量属于方法,方法进栈区
3.生命周期不同
成员变量是和对象相关的,对象在它就在,对象死了,他也就消亡了;
局部变量是和方法相关,随着方法调用而存在,方法调用完毕(会弹栈)它也就消失
4.初始值不同
成员变量有默认初始值
局部变量是没有初始值的,必须声明,赋值才能使用
局部变量以及成员变量的名字是可以一样的,在方法使用时,采用就近原则
------匿名对象
含义:没有名字的对象就是匿名对象(就是不需要引用来接收该对象)
使用:创建一个Teacher类的匿名对象就写成new Teacher( )
注意:
如果调用一个方法时,确定只需要调用一次,就可以用匿名对象,这样的话还可以节省代码
匿名对象可以作为实际参数进行传递
匿名对象调用方法,属性以后就会被垃圾回收器回收