一、理解
生活中 - 类:抽象的概念,把具有相同特征和操作的事物归为一类
代码中 - 类:抽象的概念,把具有相同属性和方法的对象归为一类
生活中:先有实体(对象),再有类
代码中:先有类,再有实体(对象)
注意:类相当于模板,刻画出对象应该拥有怎样的属性和方法
二、编写类,创建对象
属性:写在类里,方法外的变量
- 创建人类
//人类
//注意:类里只有属性和方法
public class Person {
//属性
String name;
int age;
char sex;
//方法
public void eat(){
System.out.println("吃饭饭");
}
public void sleep(){
System.out.println("睡觉觉");
}
}
- 在测试类里创建人类的对象
//测试类:测试我们写好的代码
//测试类必须有主方法
public class Test01 {
public static void main(String[] args) {
//需求:创建人类,再创建人类的对象
//创建人类的对象
Person p = new Person();
//操作属性 -- 设置属性
p.name = "倪飞";
p.age = 21;
p.sex = '男';
//操作属性 -- 获取属性
System.out.println(p.name);
System.out.println(p.age);
System.out.println(p.sex);
//调用方法
p.eat();
p.sleep();
}
}
三、属性 - 全局变量
含义:类里,方法外的变量
public class A{
//属性 - 全局变量
String str1; //成员变量
static String str2;//静态变量
public void method(){}
}
四、成员变量
含义:属于对象的变量
注意:每个对象独享一份成员变量,而且系统会为成员变量赋默认值
默认值:
- 整数类型:0
- 浮点类型:0.0
- 字符类型:’ ’
- 布尔类型:false
- 引用类型:null
成员变量 vs 局部变量
成员变量:类里,方法外的变量,作用于整个类,每个对象独享一份成员变量,而且系统会为成员变量赋默认值
局部变量:方法里的变量,系统不会赋默认值
五、成员方法
语法:
访问修饰符 返回值类型 方法名([参数]){}
成员方法 vs 静态方法
成员方法必须用对象调用
静态方法必须用类名调用
人类
package com.dream.test03;
public class Person {
String name;
char sex;
int age;
//成员方法必须使用对象调用
public void eat(){
System.out.println("吃饭饭");
}
//成员方法必须使用对象调用
public void sleep(){
System.out.println("睡觉觉");
}
//静态方法直接使用类名调用
public static void method(){
}
}
测试类
package com.dream.test03;
public class Test01 {
public static void main(String[] args) {
/**
* 理解面向对象及成员变量
*
* 需求:编写人类,并操作该类的对象
*/
Person p = new Person();
p.name = "杨晨";
p.sex = '男';
p.age = 18;
System.out.println(p.name);
System.out.println(p.sex);
System.out.println(p.age);
p.eat();
p.sleep();
//静态方法直接使用类名调用
Person.method();
}
}
内存图
测试类
package com.dream.test03;
public class Test02 {
public static void main(String[] args) {
/**
* 理解面向对象及成员变量
*
* 需求:编写人类,并操作该类的对象
*/
Person p1 = new Person();
Person p2 = new Person();
p1.name = "杨晨";
p2.name = "汪美丽";
System.out.println(p1.name);
System.out.println(p2.name);
}
}
内存图