Java day07

面向对象编程

  1. 面向对象是一种思想
    把对象作为解决问题的主体,面向对象就是把一个问题进行拆解,然后交给一个一个的类去解决.
    例如:
//有一个校长,他希望政府能够资助他的学校
//因此他要证明他的学校的教学实力
//假如,评判教学实力的标准是一本的学生的个数.
public class Headmaster{
	public static void main(String[] args){
		//校长聘请了10个老师
		Teacher[] teachers = new Teacher[10];
		
		int sum = 0;
		//老师开始教学生
		for(Teacher teacher:teachers){
			sum += teacher.teach();
		}
		//sum是一本的人数
		//校长不需要去教学生,他只需要指挥老师去做
		//然后拿sum去和政府交涉
	}
}

面向过程:在处理问题的时候,注重处理的过程,每个步骤都是亲力而为
面向对象:不注重过程, 要的是结果,找别人帮忙(偷懒)
但是面向对象替换不了面向过程的,当面向对象将问题拆解至足够小的时候,就需要面向过程进行完全解决.

  1. 面向对象的好处:

    1. 服务人类常规思考方式
    2. 由执行者变成了指挥者
    3. 面向对象编码有利于代码的扩展与维护
  2. 面向对象的三大特性

    1. 封装
    2. 继承
    3. 多态

面向对象开发

类 :类别 是一类事物的一个抽象的概念 (抽象) 人类
对象:是具体的事物了
类是对象一个抽象,对象是类的具体
可以把类看作是对象的图纸,而对象是类依据图纸制造的产品,只有产品能解决具体的问题.

类的组成部分

  1. 属性: 也就是这个类的一些公有描述 比如学生类( 姓名,年龄,生日,身高 ) 名词,类属性的作用域是整个类.
  2. 方法:也就是执行的一些操作 学习 吃饭 打王者(动词)

例如:

public class Student{
	//类属性
	String name;
	int age;

	//类方法
	public void read(String bookName){
		...
	}
}
  1. 创建对象的语法
    类名 名称 = new 类名();
Student xiaoming = new Student();
1. Student:要实例化的类名
2. xiaoming:对象名
3. new:在堆内存里开辟空间
  1. 调用属性的语法是
    对象名.属性名
xiaoming.name;
  1. 给属性赋值的语法
    对象名.属性名=赋值
xiaoming.name = "张三";
  1. 调用方法的语法
    对象名.方法的名称(参数)
xiaoming.read("语文");

成员变量与局部变量

成员变量与局部变量的区别

  1. 位置不一样
    成员变量 成员变量是在类里,局部变量是在方法里
  2. 作用域不一样(生命周期)
    成员变量 是随着类的销毁而销毁 局部变量是随着方法的开始而开始,方法的介绍而结束
  3. 存的位置不一样
    成员变量是存在堆里 局部变量是存在栈里
  4. 成员变量会有默认值 int 0 double 0.0 String null 局部变量没有默认值

匿名对象

匿名对象:没有名字的对象
语法是: new 类名();
用处:

  1. 只要实例一次,也就是用完之后,就不需要这个对象
  2. 调用方法的时候使用
  3. 对象作为返回值的时候,也是用匿名对象

匿名对象给成员属性赋值没有任何意义

封装

封装: java的三大特性之一
定义:隐藏内部信息,提供对外访问的接口

封装的好处:

  1. 隐藏内部的信息
  2. 提高代码的扩展性与可维护性
  3. 提高代码的安全性

封装属性 的基本的步骤:

public class Student{
	//属性私有化
	private String name;

	//提供set get方法
	public void setName(String newName){
		...
	}
	public String getName(){
		...
	}
}

this

public class Student{
	private String name;
	public void setName(String name){
		//this可以视为Student的一个对象,也就是指本对象
		//this.name = name;
		//是说将name变量给本类的name属性赋值
		this.name = name;
	}
	public String getName(){
		...
	}
}

this:表示当前对象的引用(就可以理解为当前对象)
所有通过this 获取的都是 成员属性 要么是成员方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值