面向对象一

面向对象

概念

面向对象的提出是针对面向过程,在解决一个实际问题的时候,需要明确步骤,每一步做哪些确定的动作,这是面向过程,而面向对象是对于面向过程提出的一个抽象的描述,例如(解决吃饭这个问题:1.面向过程——对于吃饭需要先做饭(买菜,洗菜,烧饭)这些步骤都需要实现,2.面向对象——只需要告诉自己吃饭,而其他操作不需要自己实现,交由专门负责的人实现即可)
面向过程是最基本的解决思路
面向对象是基于面向过程

类的提出是依据面向对象的提出而产生的,类是用来描述一种事物(这种事物所有的个体都具有相似的地方)类与方法的提出有些相似
方法:为了解决代码的冗余(同一步骤需要多于一次的执行)而提出的,是一些语句的整合。
类:为了解决相似的个体但不是同一个个体而提出的,例如(可以有person类,这个类可以描述人,但不是一个具体的人,是所有人抽象化提出的一个概念)是事物的属性和行为的整合。

对象

提出了便产生了对象,对象是一个类的具体描述,一个具体的东西,例如(一个person类,这是描述人的一个类,但它并没有具体化,这时候使用对象将其具体化,一个叫做小明的人)

class demo1{
public static void main(String[] args){
	Person p=new Person();
	System.out.println(p.name);
	System.out.println(p.age);
	p.eat();
	}
}
class Person{
		String name;//成员变量(实例变量 对象的特有属性)
		int age;
		String sex;
	void eat(){
		System.out.println("吃饭");
		}
	void sing(){
		System.out.println("唱歌");
		}
}

在上述程序中,定义了一个Person类,这个类中有一些属于所有人的属性,以及一些行为,而在主函数中创建了对象p,这个对象就是这个类的一个具体化实现。对于属性也可称作变量,而变量有局部变量及成员变量:
成员变量与局部变量的区别:
存储位置:
成员变量:存储在对象(堆内存)
局部变量:存储在栈内存中(函数所属空间)
生命周期:
成员变量:随着对象而存在或消亡
局部变量:随着函数的进出栈而存在或消亡
初始化:
成员变量:有默认初始化,可通过对象直接调用
局部变量:必须在初始化且赋值后才可调用
适用场合:
成员变量:在有对象的地方均可调用
局部变量:只能在函数中调用

class demo5{
	public static void main(String[] args){
	Person p=new Person();
	p.show();
	}
}
class Person{
	int age=10;
	public void show(){
		int age=20;
		System.out.println(age);
	}
}

在这里插入图片描述
即在这个例子中,访问到的是局部变量,而访问不到成员变量,这是由于就近原则导致,如果在这时候要访问成员变量,可以使用关键字this。例如:

class demo5{
	public static void main(String[] args){
	Person p=new Person();
	p.show();
	}
}
class Person{
	int age=10;
	public void show(){
		int age=20;
		System.out.println(this.age);
	}
}

在这里插入图片描述
由此可以看出访问到的数据是成员变量,这就是this关键字的一个作用。在后边会整理this的用法及作用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值