对象
- 属性:对象具有的各种特征
- 每个对象的每个属性都拥有特定值
例如:张浩和李明的年龄、姓名不一样 - 方法:对象执行的操作
对象:用来描述客观事物的一个实体,由一组属性和方法构成
封装
•对象同时具有属性和方法两项特性
•对象的属性和方法通常被封装在一起,共同体现事物的特性, 二者相辅相承,不能分割
类
- 类是模子,定义对象将会拥有的特征(属性)和行为(方法)
即:类是具有相同属性和行为的一组对象的集合 - 类是对象的类型
不同于int类型:具有方法
类和对象的关系:
- 类是抽象的概念,仅仅是模板
比如说:“人” - 对象是一个你能够看得到、摸得着的具体实体
Java类定义模板
语法:
public class 类名 {
//定义属性部分
属性1的类型 属性1;
属性2的类型 属性2;
…
属性n的类型 属性n;
//定义方法部分
方法1;
方法2;
…
方法m;
}
实例:
如何创建和使用对象
使用对象的步骤
- 创建对象
类名 对象名 = new 类名() ;
或者
类名 对象名;对象名 = new 类名();
例如:School center = new School();
- 引用对象成员:使用“.”进行以下操作
引用类的属性:对象名.属性;
引用类的方法:对象名.方法名();
center.name = "学校中心"; //给name属性赋值
center.showCenter(); //调用showCenter()方法
例如:有类Person和类Person2
Person2通过调用Person的方法show来输出
/*
* 创建一个“人”类,
* 属性有姓名和年龄
* 方法有show:判断年龄在是否18到60岁之间,在就要买票
*
*/
import java.util.Scanner;
public class Person {
//属性
String name;
int age;
//方法
public void show(){
Scanner input = new Scanner(System.in);
while(!"n".equals(name)){
//判断年龄
if (age>=18&&age<=60) {
System.out.println("票价20");
}else {
System.out.println("免费");
}
//循环输入
System.out.println("输入姓名:");
name=input.next();
if (!"n".equals(name)) {
System.out.println("请输入年龄");
age= input.nextInt();
}
}
System.out.println("退出程序");
}
}
Person2通过调用Person的方法show来输出
结果:
总结
定义和使用类的方法
定义类的方法
语法:
public 返回值类型 方法名() {
//方法的主体
}
方法的返回值:
两种情况
- 如果方法具有返回值,方法中必须使用关键字return返回该值,返回值类型为该返回值的类型
- 如果方法没有返回值,返回值类型为void
方法调用
方法是个“黑匣子”,完成某个特定的应用程序功能,并返回结果
方法调用:执行方法中包含的语句
语法:
对象名.方法名();
注:
- 可以在类的方法中调用该类另一个方法
- 多个方法不能相互嵌套定义!
- 在有返回值的方法中,方法不能返回多个值!要返回多个值只能用数组。
- 不能在方法外部直接写程序逻辑代码!
成员变量与局部变量
在类下声明的非静态变量称为成员变量
在方法中声明的变量称变局部变量
区别
- 在类中的位置不同
成员变量:类中方法外
局部变量:方法定义中或者方法声明上 - 在内存中的位置不同
成员变量:在堆中
局部变量:在栈中 - 生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 - 初始化值不同
成员变量:有默认值;字符型的初始值位num,数值型的初始值为0;
局部变量:没有默认值,必须定义,赋值,然后才能使用
小知识
- 在成员变量和局部变量同名时,你在方法中调用的变量一般都是局部变量;若你想调用成员变量就使用关键字this;方法是this.变量名。
- 本类中方法可以被这个类的其他方法直接调用