函数(方法)
修饰符 返回值类型 方法名(参数列表)
{
// 方法体
// return语句
}
数组
存储多个同一种类型数据的元素的容器
int[] arr = new int[2];
int[][] arr2 = new int[2][]; // null
// 普通查找
1) 明确返回值类型 int
2) 明确参数列表 int[] arr, int key
public static int getKeyIndex(int[] arr, int key)
{
// 遍历
for (int i = 0; i < arr.length; i++)
{
if (key == arr[i])
{
return i;
}
}
return -1;
}
2. java中的参数传递问题
基本数据类型: 形式参数的改变不会影响实际参数.
引用数据类型: 形式参数的改变会直接影响实际参数.
关键就是看传递的是实际值还是地址值.
注意: 字符串特殊.
3. 面向对象思想概述
面向过程: 以函数为基础,强调的是过程,关注的是功能行为.
面向对象: 以对象为基础,强调的是对象,关注的是具备某些功能的对象.
关系: 面向对象是基于面向过程的.
4. 面向对象的思想特点:
1) 更符合人们的思考习惯.
2) 将复杂的事情简单化.
3) 将程序员从执行者变成指挥者.
面试小技巧: 有些东西结合现场环境随机应变.
一个合格的程序与是不会写出诸如"摧毁地球"这样的功能的, 他们会写一个方法叫摧毁行星,而把地球作为参数传递进去.
5. 符合面向对象思想的分析方式
1) 分析系统中有哪些对象 -- 名词提取法
2) 明确这些对象具备什么功能
3) 明确对象之间的关系.
作业: 今天学完之后,把刘老师大象的案例,换成能运行的代码.
6. 类与对象
类: java语言中最基本的单位就是类. 是属性和行为的集合.一个抽象的概念.
对象: 是类的具体的存在.
java中描述事物通过类的形式体现,类是具体事物的抽象,概念上的定义。比方说人,整个概念
对象就是事物的具体实实在在的个体,比方说魏忠贤.
7. 类的组成
成员变量 : 定义在类里面, 方法外面的变量.
成员方法 : 我们之前定义的函数干掉一个static就是成员函数(成员方法)
举例: 学生类
class Student
{
String name = "张三"; // 最初它初始化的时候是null,然后被"张三"替代. 并不是一初始化就是"张三".
int age;
char sex;
public void study()
{
System.out.println("学生学习");
}
public void sleep()
{
System.out.println("学生睡觉");
}
public void eat()
{
System.out.println("学生吃饭");
}
}
使用学生类:
1) 如果多个类写在同一个源文件中. 文件名必须和带main方法的那个class一样.
2) 创建对象
类名 变量名 = new 类名();
3)
使用成员变量: 对象名.成员变量名
使用成员方法: 对象名.成员方法名()
注意事项:
new 出来的实例都是在堆内存,
堆里面的变量都有默认的初始化值.
练习:
手机类:
属性:品牌(brand)、价格(price)、颜色(color)
行为:打电话(call)、发短信(sendMessage)、玩游戏(playGame)
汽车类:
属性:品牌、价格、颜色
行为:跑、停
什么时候定义成员变量:
描述事物的属性,就应该定义为成员变量.
事物的属性是事物的一部分,这个属性对应的变量才能被定义为成员变量。
在java中,成员变量其实就是这个类的属性。
其他情况,都应该将变量定义成局部变量。
当然,你如果不按照这个标准做也没有太大问题,只是不符合面向对象的思想特点。
8 .成员变量和局部变量区别
1) 定义位置区别:
成员 : 类中,方法外面
局部 : 方法中或者方法声明上的形参
2) 初始化值的区别:
成员变量: 有默认初始化值.
局部变量: 没有默认初始化值,想使用,必须先定义,再赋值,再使用.
所有的变量使用前都必须进行初始化.
3) 存储位置的区别:
成员 : 存储在堆里面.随着对象的创建而存在,随着对象的消失而消失.
局部 : 存储在栈内存.随着方法的调用而存在,随着方法的调用完毕而消失.
在使用变量的过程中, 查找变量的顺序是:
局部 -- 成员 -- 父类 -- 报错
使用过程中,遵循一个原则:就近原则。
9. 匿名对象
没有名字的对象.
应用场景:
a: 当对象的方法仅进行一次调用的时候.
b: 匿名对象可以作为实际参数传递.
// 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 . 重点
定义类,并使用类中的成员掌握
关于类的内存图,理解 -- 不理解建议大家仿照刘老师的图自己画画
局部变量和成员变量 掌握
匿名对象理解.
|