11.javase_面向对象1

一.面向对象介绍
1.1并不是一个技术,而是一种编程指导思想
1.2以什么形式组织代码;以什么思路解决问题
1.3为什么要用面向对象编程:
因为生活中,我们解决问题时,就是采用这种指导思想去解决的。
所以,我们写程序去解决问题时,如果也能采用这种指导思想就会使编程变得非常简单,程序也便于人理解

1.4 面向对象理解伪代码
public class Test{
	public static void main(Stringl] args){
		老师 t= new 老师();  //找一个老师
		试卷 s= t.出题();    //老师出试卷
		学生 stu = new 学生(); //找一个学生
		stu.考试(s);          //学生考试
		t.批卷(s);            //老师批改试卷
	}
}
1.5面向对象,重点学习什么?
	一点:学习如何自己设计对象并使用
	二点:学习获取已有对象并使用

二.类和对象
2.1 什么是类
类是对现实生活中一类具有共同属性和行为的事物的抽象
2.2 什么是对象
是能够看得到摸的着的真实存在的实体
2.3小结
类是对象的抽象(学生类),对象是类的实体(学生小明)
2.4对象的属性和行为
属性:对象具有的各种特征,每个对象的每个属性都拥有特定的值(手机:品牌,价格,内存)
行为:对象能够执行的操作(手机:打电话,发短信)

三.类的定义
3.1 类是什么:
是对现实生活中一类具有共同属性和行为的事物的抽象,确定对象将会拥有的属性和行为
3.2类的组成:属性和行为
属性:在类中通过成员变量来体现(类中方法外的变量)
行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)
3.3类的定义步骤:
步骤1:定义类 (public class 类名 {})
步骤2:编写类的成员变量 (变量1的数据类型 变量1;)
步骤3:编写类的成员方法 (方法1;)
public class 类名 {
// 成员变量
变量1的数据类型 变量1;
变量2的数据类型 变量2;

// 成员方法
方法1;
方法2;

}
3.4 类的定义具体案例:

public class Phone {
			//成员变量
			String brand;
			int price;
			
			//成员方法
			public void call() {
				System.out.println("打电话");
			}
			public void sendMessage() {
				System.out.println("发短信");
			}
		}
3.5 对象的使用
  创建对象
	格式:类名 对象名 = new 类名();
	范例:Phone p = new Phone();
  使用对象
	使用成员变量
	  格式:对象名.变量名
	  范例:p.brand
	使用成员方法
	  格式:对象名.方法名(参数)
	  范例:p.call()
  对象使用具体案例:
public class PhoneDemo {
			public static void main(String[] args) {
				//创建对象
				Phone p = new Phone();
				//使用成员变量
				p.brand = "小米";
				p.price = 2999;
				System.out.println(p.brand);
				System.out.println(p.price);
				//使用成员方法
				p.call();
				p.sendMessage();
			}
		}

四.学生类的定义和使用
需求:定义一个学生类,然后定义一个学生测试类,在学生测试类中通过对象完成成员变量和成员方法的使用
/* 定义一个学生类 */

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();
			//给成员变量赋值
			s.name = "林青霞";
			s.age = 30;
			System.out.println(s.name+","+s.age);
			//调用成员方法
			s.study();
			s.doHomework();
		}
	}

五.Java 内存分配
Java程序在运行时,需要在内存中分配空间。
为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。
5.1Java 内存分配
在这里插入图片描述

5.2栈和堆
在这里插入图片描述

栈(虚拟机栈)
	所有局部变量都会在栈内存中创建
	局部变量:定义在方法中的变量或者方法声明上的变量
	方法执行都会加载到栈中进行
	局部变量特点:随着方法的调用而存在,随着方法的调用完毕而消失
	代码:Student s = new Student();
堆
	所有对象及其对应的实例变量和数组都将存储在此处
	简单理解为:new出来的东西,都存储在堆内存
	每一个new出来的东西都有一个地址值,使用完毕,会在垃圾回收器空闲时被回收
	实例变量(成员变量)有初始化值:
	基本数据类型:整数:0,浮点数:0.0,布尔:false,字符:空字符
	引用数据类型:null

5.3单个对象内存图
在这里插入图片描述
在这里插入图片描述

5.4多个对象内存图
在这里插入图片描述

5.5多个引用指向相同
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java之书

会持续更新实用好的文章谢谢关注

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值