1.类和对象
1.1)万物皆对象,客观存在的事物皆为对象
类是对现实生活中一类具有共同属性和行为的事物的抽象
类的特点:
①类是对象的数据类型
②类是具有相同属性和行为的一组对象的集合
属性:对象具有各种特征,每个对象的每个属性都拥有特定的值
行为:对象能够执行的操作
类:类是对现实生活中一类具有共同属性和行为的事物的抽象,确定对象将会拥有属性和行为
对象:是能够看得到摸得着的真实存在的实体
类是对象的抽象,对象是类的实体
1.2)类的定义
类的重要性:是java程序的基本组成单位
类的组成:属性和行为
属性:在类中通过成员变量来体现(类中方法外的变量)
行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)
类的定义步骤:
①定义类
②编写类的成员变量
③编写类的成员方法
eg:
public class 类型{
//成员变量
变量1的数据类型 变量1;
变量2的数据类型 变量2;
...
//成员方法
方法1;
方法2;
...
}
/*
类的定义
类的定义步骤:
定义类
编写类的成员变量
编写类的成员方法
手机类;
类名;
手机(phone)
成员变量;
品牌(brand)
价格(price)
成员方法;
打电话(call)
发短信(sendMessage)
*/
public class Phone{
//成员变量
String brang; //品牌brang(小米、华为、苹果)这里是 字符串 所以用String
int price; //价格price(3000、4000) 这里是数字用 int定义
//成员方法
public void call(){
System.out.println("打电话");
}
public void sendMessage(){
System.out.println("发短信");
}
}
1.3)对象的使用
创建对象:
①格式:类名对象名 = new 类名();
②范例:Phone p =new Phone();
创建对象:
①使用成员变量
格式:对象名.变量名
范例:p.brand
②使用成员方法
格式:对象名.方法名()
范例:p.call()
public class PhoneDemo {
public static void main(String[] args) {
//创建对象
Phone p = new Phone();
//使用成员变量
System.out.println(p.brand);
System.out.println(p.price);
}
}
分析:
//创建对象
Phone p = new Phone();
这个p是new出来的,是放在 堆内存 ,堆内存的成员是有默认值的
String brand;
brand是String类型,String类型是引用类型,所以默认值是null
int price;
price是int类型,所以默认值是0
所以运行之后是:
null
0
赋值后:
package com.itheima;
public class PhoneDemo {
public static void main(String[] args) {
//创建对象
Phone p = new Phone();
//使用成员变量
System.out.println(p.brand);
System.out.println(p.price);
p.brand = "小米";
p.price = 2999;
System.out.println(p.brand);
System.out.println(p.price);
//使用成员方法
p.call();
p.sendMessage();
}
}
赋值后运行:
null
0
小米
2999
打电话
发短信
1.4)案例:学生
需求:首先定义一个学生类,然后定义一个学生测试类,在学生测试类中通过对象完成成员变量和成员方法的使用。
思路:
①定义一个学生类
类名:Student
成员变量:name,age
成员方法:study(),doHomework()
②定义学生测试类
类名:StudentDemo
因为要做测试,所以有一个主方法:main方法
③在学生测试类中通过对象完成成员变量和成员方法的使用
给成员变量赋值,输出成员变量的值
调用成员方法
public class StudentDemo {
public static void main(String[] args){
//创建对象
Student s = new Student();
//使用对象
System.out.println(s.name + "," + s.age);
s.name = "林青霞";
s.age = 30;
System.out.println(s.name + "," + s.age);
//成员方法
s.study();
s.doHomework();
}
}
运行:
null,0
林青霞,30
好好学习,天天向上
键盘敲烂,月薪过万
2.对象内存图(单个对象)
/*
学生类
*/
public class Student{
//
String name;
int age;
//
public void study(){
System.out.println("好好学习,天天向上");
}
public void doHomework(){
System.out.println("键盘敲烂,月薪过万");
}
}
测试类:
public class StudentDemo {
public static void main(String[] args){
//创建对象
Student s = new Student();
//使用对象
System.out.println(s.name + "," + s.age);
s.name = "林青霞";
s.age = 28;
System.out.println(s.name + "," + s.age);
//成员方法
s.study();
s.doHomework();
}
}
运行:
null,0
林青霞,28
好好学习,天天向上
键盘敲烂,月薪过万
2.2对象内存图(多个对象)
/*
学生类
*/
public class Student{
//
String name;
int age;
//
public void study(){
System.out.println("好好学习,天天向上");
}
public void doHomework(){
System.out.println("键盘敲烂,月薪过万");
}
}
测试类:
public class StudentDemo02 {
public static void main(String[] args){
//创建第一个对象并使用
Student s1 = new Student();
s1.name = "李雷";
s1.age = 28;
System.out.println(s1.name + "," + s1.age);
s1.study();
s1.doHomework();
//创建第二个对象并使用
Student s2 = new Student();
s2.name = "韩梅梅";
s2.age = 26;
System.out.println(s2.name + "," + s2.age);
s2.study();
s2.doHomework();
}
}
运行:
李雷,28
好好学习,天天向上
键盘敲烂,月薪过万
韩梅梅,26
好好学习,天天向上
键盘敲烂,月薪过万