目标:
1.掌握类、实例化对象和调用方法(函数)的格式。
2.掌握生活中类与对象转换为程序中的类与对象。
面向对象编程中的概念:
所有的概念都是源自于生活中的内容。
面向对象编程实际就是模拟现实生活。
对象:作为基础和核心内容。
类:作为一个基本的单位存在的(就是一种数据类型)。
1、生活中有哪些物体或者事物是对象?
对象:是具体的一个物体或事物(一定是“具体”,对比意义下是独一无二的)
例子:我的电脑
特征:也叫属性。颜色,配置,尺寸,品牌,型号,重量等
方法:也叫行为,功能,用途。上网,听歌,看电影,写作业等
2、类的组成
怎样对对象进行分类呢?
程序中类是怎样呢?
1.属性 2.方法
3.类的基本格式
//创建类
public class类名{
//创建属性
private 数据类型属性名;
//创建方法
public 方法名(数据类型,参数名…){
}
}
4.实例化对象和调用方法的格式
实例化对象的关键字是:new
格式:
类名对象名 = new 类名();
Student abc = new Student();
调用方法和属性的格式:
对象名.方法名(参数值,...);
对象名.属性
abc.setName("小明");
String name = abc.getName();
abc.test("高数");
练习:小明去考高数。
分析:
对象:小明,高数
小明
属性:姓名
方法:考试(高数)
高数
属性:课程名称
代码:
//创建一个名为学生的类
public class Student{
public static void main(String [] args){
//实例化对象
Student abc = new Student();
//调用属性
abc.setName("小明");
abc.getName();
//调用方法
String name = abc.getName();
abc.test("高数");
}
//创建姓名属性
private String name;
//定义setName方法
public void setName(String name){
this.name=name;
}
//定义getName方法
public String getName(){
return name;
}
//创建考试方法
public void test(String kc){
System.out.println(name+"去考"+kc);
}
}
5.对象是否可以作为参数呢?
可以,可以把对象作为参数进行传递,此时的传递为引用传递,传递的是参数的地址。
类与对象2
目标:
1.掌握构造方法、重载、this、值传递和引用传递的格式和用途。
2.能灵活的使用引用传递。
类是由两个部分组成:1.属性 2.方法
方法分为哪几类?
1.普通方法(表示的是对象的行为)
2.构造方法(用来实例化对象)
1.构造方法
格式:
public类名(数据类型参数名,。。。){
//方法体
}
区别:
1、名字不同(构造方法的名字必须和类名一致)
2、返回只类型不同(构造方法不需要返回值,可以理解为返回的就是该类的一个对象)
3、作用不同(构造方法作用是对对象进行实例化,普通方法表示得是对象的行为)
类名对象名 = new 构造方法();
用途:
1.实例化对象
2.给属性设置初始值
2.方法重载
2.1实现方法重载的条件:
1.方法名字要相同
2.方法所带的参数个数,参数类型和参数顺序至少要有一个不同。
2.2如何调用
程序按照输入的参数来判断调用哪个方法的
2.3什么情况下要使用呢?
举例说明:学习方法有多种
构造方法为什么要使用方法重载
3.this关键字
this关键字只能调用当前类中的属性和方法
用途:
1.用来区分属性名和参数名(前提是属性名和参数名相同)
2.调用构造方法
this关键字表示当前调用方法的对象。
4.值传递
值传递适用于Java的什么数据类型?
Java的基本数据类型(8个)+String类型。
值传递的方式是怎么样的?
方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参数的值。
5.引用传递
引用传递适用于java的什么数据类型?
引用类型(类,接口,抽象类和数组),也可以叫做对象类型,类类型,...
引用传递的方式是怎么样的?
也称为传地址。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,方法执行中形式参数值的改变将会影响实际参数的值。