一、面向对象
面向对象思想:
面向对象是基于面向过程的编程思想
面向过程:强调的是每一个功能的步骤
面向对象:强调的是对象,然后由对象去调用功能
面向对象的思想特点:
是一种更符合思考习惯的思想
可以将复杂的事情简单化
将我们从执行者变成了指挥者
编程语言:
将现实世界的食物模拟出来,实现信息化
如何表示现实世界的事物:
属性: 事物的描述信息
行为: 就是事物能够做什么
java语言最基本的单位是类
类:是一组相关的属性和行为的集合
对象,就是事物的具体体现
类是如何和事物进行对应:
类:
成员变量
成员方法
需求:
学生
属性:姓名,年龄.....
行为:学习.....
学生类:
成员变量:姓名,年龄
成员方法:学习....
成员变量:
位置不同,类中,方法外
初始化值:不需要给初始化值
成员方法:
去掉static关键字
代码块
public class Student{
//成员变量:姓名、年龄
String name;
Int age;
//成员方法:学习方法
public void study(){
System.out.println("学习");
}
}
使用一个类,就是使用该类的成员(成员变量和成员方法)
要使用一个类的成员,就必须先拥有该类的对象
如何去创建一个类的对象:
格式:;类名 对象名 =new 类名();
对象如何访问成员
成员变量:对象名.变量名
成员方法:对象名.方法名(...)
代码块
public class StudentDemo{
public static void main(String[] args){
//格式:类名.对象名=new 类名();
Student s=new Student();
//Syste..out,println("s:"+s);
//直接输出成员变量值
System.out.println("姓名:"+s.name);//null
System.out.println("年龄:"s.age);//0
//给成员变量赋值
s,name="小明";
s.age=20;
//再次输出成员变量的值
System.out.pintln(("姓名:"+s.name);//小明
System.out.println("年龄:"s.age);//28
//调用成员方法
s.study();
}
}
例子:
手机类:
成员变量:品牌,价格,颜色.....
成员方法:打电话,发短信....
代码块
phone.java
public class Phone{
//品牌,价格,颜色
String brand;
int price;
String color;
//打电话
public void call(String name){
System.out.println("给"+name+“打电话”);
}
public void sendMessage(){
System.out.prinln("群发短信");
}
}
PhoneDemo.java
public class phoneDemo{
public static void mian(String[] args){
//创建对象
Phone p = new Phone();
//输出成员变量的值
System.out.println("品牌"+p.brand);//null
System.out.println("价格"+p.prince);//0
System.out.prinln("颜色"+p.color);//null
//给成员变量赋值
p.brand="华为";
p.price=2000;
p.color="红色";
//再次输出成员变量的值
System.out.println("品牌"+p.brand);//华为
System.out.println("价格"+p.prince);//0
System.out.prinln("颜色"+p.color);//null
//调用成员方法
p.call("小明");
p.sendMessage();
}
}
手机类的测试类:
public class phoneDemo{
public static void mian(String[] args){
Phone p = new Phone();
System.out.println(p.brand+"---"=p.price+"---"+p.color);
p.brand="华为";
p.price=2000;
p.color="红色";
System.out.println("p.brand+"---"=p.price+"---"+p.color")
p.call("小明");
p.sendMessage();
}
}
两个对象对应不同的堆内存
代码块:
PhoneDemo2
/*
手机的测试类2
*/
public class PhoneDemo2{
public static void main(String[] args){
Phone.p=new Phone();
p.brand="小米";
p.price=1000;
p.color="黄色";
System.out.println("p.brand+"---"=p.price+"---"+p.color")
p.call("小明");
p.sendMessage();
Phone p2 = new Phone;
p2.brand="苹果";
p2.price=10000;
p2.color="绿色";
System.out.println("p.brand+"---"=p.price+"---"+p.color")
p2.call("小华");
p2.sendMessage();
}
}
两个对象对应相同的堆内存
代码块:
PhoneDemo3
/*
手机的测试类3
*/
public class PhoneDemo3{
public static void main(String[] args){
Phone.p=new Phone();
p.brand="OPPO";
p.price=2999;
p.color="白色";
System.out.println("p.brand+"---"=p.price+"---"+p.color")
p.call("小明");
p.sendMessage();
Phone p2 = p;
p2.brand="魅族";
p2.price=1999;
p2.color="蓝色";
System.out.println("p.brand+"---"=p.price+"---"+p.color")
p2.call("小华");
p2.sendMessage();
}
}