JAVA 面向对象、类

半世苍凉 提交于 2020-01-22 21:55:56

面向过程:c语言,开发中小型项目的效率很高。
面向对象:Java或C++等语言,适合大型开发场景。

面向过程思想:实现一个功能,看每个步骤怎么做,整体的过程是怎么样的。每一个步骤都需要自己亲力亲为。
面向对象思想:实现一个功能,不看重具体的过程和步骤,关心“谁能帮我做这件事”。
面向对象三大特征:封装性,继承性,多态性。

举例一.把数组转换成指定格式字符串

public class Demo01PrintArry {
	public static void main(String[] args) {
		int[] array = { 10, 20, 30, 40, 50 };

//		面向过程,每一个步骤细节都需要亲自处理
		System.out.print("[");
		for (int i = 0; i < array.length; i++) {
			if (i == array.length - 1) {
				System.out.print(array[i] + "]");
			} else {
				System.out.print(array[i] + ",");
			}
		}

//		面向对象,JDK中有个工具Arrays,可将这个工具将数组转换为指定格式字符串
		// 我自己不做,找Arrays帮我把数组转换成指定格式字符串
		String str = Arrays.toString(array);
		System.out.println(str);
	}
}

类与对象的关系:
现实中的事物分为两部分:
1.属性:事物的特征描述信息,“是什么”。
2.行为:事物的能力行动方案,“能做什么”。

面向对象中,类 是用来模拟现实事物的。
类中也有属性、行为两个组成部分,对象是类的具体实例:
1.类:抽象的,描述信息功能,不能实际使用。是一张电脑设计图。
2.对象:具体的,根据类创造出来的,可以实际使用。也叫做根据类,实例化对象。是一个真正的电脑。

类的定义:类 是用来模拟现实事物的代码手段,事物分为属性和行为。
1.成员变量(属性):在变量的位置直接定义在类中,在方法外,即为成员变量。
2.成员方法(行为):普通方法去掉static关键字,即为成员方法。

一个类通常不能直接使用,如果要使用这个类,通常都需要根据类创建一个真正的对象来使用。
如果根据类创建对象:

类名称 对象名 = new 类名称();

举例.定义一个类用来模拟现实事物“学生”。

//属性:姓名、年龄
//行为:吃饭、睡觉、学习

//对应到类中:
//成员变量(属性):Sting name、int age
//成员方法(行为):
//public void eat(){}   吃饭  
//public void sleep(){}  睡觉
//public void study(){}	学习

public class Student {
	// 成员变量
	String name; // 姓名
	int age; // 年龄

	// 成员方法
	public void eat() {
		System.out.println("吃饭饭!");
	}

	public void sleep() {
		System.out.println("睡觉觉!");
	}

	public void study() {
		System.out.println("学习!");
	}
}
public class Demo02Student {
	public static void main(String[] args) {
		// 创建了一个对象,是一个学生,对象名叫stu1
		// 对象的名称stu1特叫做对象的“引用名”
		Student stu1 = new Student();
		Student stu2 = new Student();
		Student stu3 = new Student();
		Student stu4 = new Student(); // 更多学生对象
	}
}

如何使用创建好的对象?
类当中已经定义好了两个组成部分:成员变量、成员方法
所以,根据类创建出来的对象也有这两个部分。

如何使用对象中的 成员变量?

  • 对象名.成员变量名;
    注意:对应成员变量来说,如果没有赋值,那么将会有一个默认值。例如int为0,String为null。

如何使用对象中的 成员方法?

  • 对象名.成员方法名(参数);

总结:想用谁就点调用谁。

public class Demo03Student {
	public static void main(String[] args) {
		Student stu = new Student(); // 创建一个学生对象

		System.out.println(stu.name); // 默认值null
		System.out.println(stu.age); // 默认值0

		// 改变成员变量的数据值
		stu.name = "鹿晗";
		stu.age = 20;
		System.out.println(stu.name); // 鹿晗
		System.out.println(stu.age); // 20

		// 将对象当中的成员变量,交给name变量
		String name = stu.name;
		System.out.println(name);// 鹿晗

		// 使用对象当中的成员方法
		stu.eat(); // 调用吃饭的成员方法
		stu.sleep();// 调用睡觉的成员方法
		stu.study();// 调用学习的成员方法
	}
}

3.定义一个类,用来模拟手机事物。

  • 手机事物
    属性:品牌、价格、颜色
    行为:打电话、发短信

  • 对应到类中

  • 成员变量:
    String brand; 品牌
    double price; 价格
    String color; 颜色

  • 成员方法:
    public void call(Sting who) {…} 打电话的方法
    public void sendMessage() {…} 群发短信

public class Phone {
	String brand; // 品牌
	double price; // 价格
	String color; // 颜色

	public void call(String who) {
		System.out.println("给" + who + "打电话");
	}
	public void sendMessage() {
		System.out.println("群发短信!");
	}
}
  • 如何使用定义好的类?
    类既是一种引用数据类型,使用起来可以分成三步:
    1.导包
    如果需要使用的目标类,和当前类(有main方法)位于同一个包之下,那么可以省略导包
    否则需要使用import导包语句
    2.创建
    类名称 对象名 = new 类名称();
    3.使用
    使用成员变量:对象名.成员变量名
    调用成员方法:对象名.成员方法名(参数)
public class Demo04PhoneOne {
	public static void main(String[] args) {
		//根据Phone类创建一个手机对象,名叫one
		Phone one = new Phone();
		
		//访问成员变量的默认值
		System.out.println(one.brand);//null
		System.out.println(one.color);//null
		System.out.println(one.price);//0.0
		
		one.brand = "苹果";
		one.price = 8888;
		one.color = "土豪金";
		System.out.println(one.brand);//苹果
		System.out.println(one.color);//土豪金
		System.out.println(one.price);//8888.0
		
		//调用成员方法
		one.call("乔布斯");
		one.sendMessage();
		
		//将one中存储的地址值赋值交给two一份
		//one跟two用的同一个对象,好比买卖二手房
		Phone two = one;
		System.out.println(two.brand);//苹果
		System.out.println(two.color);//土豪金
		System.out.println(two.price);//8888.0
		
		two.brand = "三星";
		two.price = 6666;
		two.color = "星空粉";
		
		System.out.println(two.brand);//三星
		System.out.println(two.color);//星空粉
		System.out.println(two.price);//6666.0
		
		System.out.println(one.brand);//三星
		System.out.println(one.color);//星空粉
		System.out.println(one.price);//6666.0
	}
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!