java_07面向对象-类与对象---①面向对象、类的使用

一、面向对象

面向对象思想:
面向对象是基于面向过程的编程思想

面向过程:强调的是每一个功能的步骤
面向对象:强调的是对象,然后由对象去调用功能

面向对象的思想特点:

是一种更符合思考习惯的思想
可以将复杂的事情简单化
将我们从执行者变成了指挥者

编程语言:

将现实世界的食物模拟出来,实现信息化

如何表示现实世界的事物:

属性: 事物的描述信息
行为: 就是事物能够做什么

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();
	}
}

两个对象对应相同的堆内存的内存图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值