1.java中的参数传递问题
基本数据类型:形参的改变不会影响实参;
引用数据类型:形参的改变直接影响实参;
关键就是看传递的是实际的值还是地址值(java中只有值传递,引用类型传递的是地址值。)
注意: 字符串特殊。
2.面向对象思想概述:
面向过程:以函数为基础,强调的是过程,关注的是功能行为。
面向对象:以对象为基础,强调的是对象,关注的是具备某些功能的对象。
关系:面向对象是基于面向过程的。
【面向过程:面向过程是以函数为基础,完成各种操作。
C语言
面向过程:面向过程是以函数为基础,完成各种操作。强调的是过程。
面向对象:面向对象是以对象为基础,完成各种操作。强调的是对象,结果。
面向对象是基于面向过程的。】
3.面向对象的思想特点:
1)更符合人们的思考习惯的思想。
2)将复杂的事情简单化。
3)将程序员从执行者变成指挥者。
面试小技巧:结合现场环境随机应变。
4.符合面向对象的分析方式:
1)分析系统中具有哪些对象----名词提取法。
2)对象都有什么功能。
3)对象之间的关系。
5.类与对象:
类:java语言中最基本的单位就是类;是属性和行为的集合,是一个抽象的概念。
对象:是类的具体的存在或体现。
java中描述事物通过类的形式体现,类是具体事物的抽象,概念上的定义
6.类的组成:
成员变量(全局):定义在类中,方法外面的变量
成员方法:函数。static去掉。
什么是成员变量,成员方法。
定义在类里面,方法外面的变量称为成员变量.
我们之前定义的主函数干掉一个static就是成员函数(成员方法)
7.使用学生类:
如果多个类卸载同一个源文件中,文件名必须和带main方法的那个class一样。
创建对象:
类名 变量名 = new 类名();
使用成员变量: 对象名.成员变量名 (需要赋值)
使用成员方法: 对象名.成员方法名() 不需要赋值。
new 出来的实例都是在堆内存中,堆里边的变量都有初始化值。
8.什么时候定义成员变量:
描述事物属性的,就定义成 成员变量。否则定义成局部变量。
事物的属性是事物的一部分,这个属性对应的变量才能被定义成成员变量。
在java中,成员变量其实就是这个类的 属性。
其他情况,都应该将变量定义成局部变量。
当然,你如果不按照这个标准做也没有太大问题,只是不符合面向对象的思想特点。
成员变量和局部变量的区别?
A:定义位置区别
成员变量 在类中,方法外
局部变量 在方法中,或者方法的形式参数
B:初始化值得区别
成员变量 有默认初始化值
局部变量 没有默认初始化值,想先定义,赋值,才能使用。
C:存储位置区别
成员变量 存储在堆中,随着对象的存在而存在,随着对象的消失而消失。
局部变量 存储在栈中,随着方法的调用而存在,随着方法调用完毕而消失。
在使用变量的时候:
首先在局部范围内查找,有就使用。
接着在成员方法找,有就使用。
如果成员位置没有,就去父类查找。
局部 -- 成员 -- 父类 -- 报错
遵循: 就近原则。
注意:局部变量必须先声明名赋值,才不报错。
成员变量不用先赋值,堆里都有默认初始化值。
判断: 所有的变量使用前必须进行初始化。 对!
因为:没有显示初始化,也有系统默认的初始化。
基本数据类型:byte short int long float double char boolean
初始值 0 0 0 0L 0.0F 0.0D 空字符,'\u0000' false
引用数据类型 : null(字符窜特殊)
9.匿名对象的概念:
没有名字的对象。
什么时候使用匿名对象:
1.当对对象方法仅调用一次的时候。
2.匿名对象可以作为实际参数进行传递。
// void
// String s
public void print(String s)
{
sop(s);
}
String s = "abc";
print(s);
// 接收一个学生类型数据的方法
public void print(Student s)
{
s.study();
}
Student s = new Student();
print(s); // 调用方法
print(new Student());
10.重点:
定义类,并使用类中的成员 掌握
关于类的内存图 理解
局部变量和成员变量 掌握
匿名对象 理解
|
|