举例
洗衣服:
面向过程:脱衣服 -->放到盆–>放洗衣粉–>加水–>浸泡–>清洗衣服–>拧干–>晾
面向对象:脱衣服–>放到洗衣机–>按钮–>晾
区别 :
面向过程:强调步骤。
面向对象:强调对象,这里的对象就是洗衣机。
什么是类
是一组相关属性和行为的集合。
什么是对象
是一类事物的具体体现。
类与对象的关系
类是对一类事物的描述,是 抽象的。
对象是一类事物的实例,是 具体的。
类是对象的模板,对象是类的实体 。
例:
学生类:学号 姓名 性别 年龄
对象: 张三同学 王麻子同学
3.1类的定义格式:
public class ClassName {
//成员变量
//成员方法
}
例:创建一个学生类
public class Student {
//成员变量
String name;//姓名
int age;//年龄
//成员方法
//学习的方法
publicvoid study() {
System.out.println("好好学习,天天向上");
}
//睡觉的方法
publicvoid sleep() {
System.out.println("睡觉");
}
}
3.2对象的使用
创建对象
类名 对象名 = new 类名();
使用对象访问类中的成员:
对象名.成员变量;
对象名.成员方法();
例:
public class Demo {
public static void main(String[] args) {
//创建对象格式:类名 对象名 = new 类名();
Student s = new Student();
s.name = "赵丽颖";//赋值操作
s.age = 18;//赋值操作
//输出成员变量的值
System.out.println("姓名:"+s.name); //赵丽颖
System.out.println("年龄:"+s.age); //18
System.out.println("‐‐‐‐‐‐‐‐‐‐");
//调用成员方法
s.study(); // "好好学习,天天向上"
s.sleep(); // "睡觉"
}
}
Phone类
public class Phone {
// 成员变量
String brand; //品牌
int price; //价格
String color; //颜色
// 成员方法
//打电话
public void call(String name) {
System.out.println("给"+name+"打电话");
}
//发短信
public void sendMessage() {
System.out.println("发短信");
}
}
测试类(main)
public class Test02Phone {
public static void main(String[] args) {
//创建对象
Phone p = new Phone();
//输出成员变量值
//没有赋值,所以初始值是基本数据类型的"默认值"
System.out.println("品牌:"+p.brand);//null
System.out.println("价格:"+p.price);//0
System.out.println("颜色:"+p.color);//null
System.out.println("‐‐‐‐‐‐‐‐‐‐‐‐");
//给成员变量赋值
p.brand = "iphone 8";
p.price = 4999;
p.color = "玫瑰金";
//再次输出成员变量值
System.out.println("品牌:"+p.brand);//iphone 8
System.out.println("价格:"+p.price);//4999
System.out.println("颜色:"+p.color);/玫瑰金
System.out.println("‐‐‐‐‐‐‐‐‐‐‐‐");
//调用成员方法
p.call("柳岩");//给柳岩打电话
p.sendMessage();//发短信
}
}
1.使用 private 关键字来修饰成员变量
2.对需要访问的成员变量,提供对应的一对 getXxx 方法 、 setXxx 方法
private的含义
private的使用格式
private 数据类型 变量名 ;
例:
public class Student {
private String name;
private int age;
}
getXxx 方法 / setXxx 方法,可以访问成员变量
public class Student {
private String name;
private int age;
public void setName(String name) {
//name = name;
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
//age = age;
this.age = age;
}
public int getAge() {
return age;
}
}
public class Test02Phone {
public static void main(String[] args) {
//创建对象
Student s = new Student ();
s.setName= "张三";
s.setAge = 18;
//再次输出成员变量值
System.out.println("姓名:"+s.getName);//张三
System.out.println("年龄:"+s.getAge);//18
}
}
当一个对象被创建时候,构造方法用来初始化该对象,给对象的成员变量赋初始值。
构造方法的定义格式
修饰符 构造方法名(参数列表){
// 方法体
}
public class Student {
private String name;
private int age;
// 无参数构造方法
public Student() {}
// 有参数构造方法
public Student(String name,int age) {
this.name = name;
this.age = age;
}
}
无论你与否自定义构造方法,所有的类都有构造方法,因为Java自动提供了一个无参数构造方法,
一旦自己定义了构造方法,Java自动提供的默认无参数构造方法就会失效。
学生类
public class Student {
//成员变量
private String name;
private int age;
//构造方法
public Student() {}
public Student(String name,int age) {
this.name = name;
this.age = age;
}
//成员方法
publicvoid setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
publicvoid setAge(int age) {
this.age = age;
}
publicint getAge() {
return age;
}
}
测试类(main)
public class TestStudent {
public static void main(String[] args) {
//无参构造使用
Student s= new Student();
s.setName("柳岩");
s.setAge(18);
System.out.println(s.getName()+"‐‐‐"+s.getAge());
//带参构造使用
Student s2= new Student("赵丽颖",18);
System.out.println(s2.getName()+"‐‐‐"+s2.getAge());
}
}