面向对象初见

面向对象基础

什么是面向对象?

面向对象是一种思想,我们可以将世界万物都归为一个类、一个对象。
就好比哈士奇,它属于雪橇犬这一类,而雪橇犬也属于犬科。
犬科类动物都具有吃、喝、睡觉、叫等功能;雪橇犬不仅具有这些功能,还具有御寒的功能;哈士奇具有了犬科、雪橇犬科等共有的特性,还具有了傻的特性。
而在面向对象中,犬科、雪橇犬科都是一个抽象类,是看不见摸不着的。而哈士奇是一个具体的实例对象,我们可以看得见摸得着。它可以调用之前抽象类的属性和方法,这是他们共有的特性,它也具有自己的特性和功能。
在面向对象编程中,我们需要将需求分解成多个实例,通过实例相互之间调用发送消息,来帮助我们完成具体功能的实现。

什么是类?

类是对象的模板,它规范了一个对象具有的属性和方法。我们可以通过类来创建一个对象的实例。
创建方法是:
先创建一个对象的引用,然后通过关键字new调用类的构造方法创建一个对象的实例,再将这个对象实例的地址传给对象的引用

	Object oj = new Object();

创建对象在内存空间的示意图:

在这里插入图片描述

对象中变量的定义:

静态变量:
使用关键字static标识,定义为静态变量之后,静态常量池会为该变量开辟空间,此时该变量不会再栈空间或堆空间中。静态变量会在类加载的时候就进行加载,且只会加载一次。

public static int a = 1;

最终变量:
使用关键字final标识,定义为最终变量之后,系统只有一次为其分配值的机会,且分配完成之后,该值不能够被改变。

public final int a = 1;

局部变量:
定义在方法体中的变量,不能够使用static修饰,有明确的生命周期。当方法体结束时,该变量生命周期结束。意味着局部变量在方法体之内是有效的,当方法体结束之后,该变量消失。

public void mothed(){
	int a = 1;
}

实例变量:
当创建实例之后,才会进行加载的变量叫实例变量。

class test{
	int a = 1;
}

成员变量:
定义在类之下,方法体之外的实例变量和静态变量。

注意:
经过静态标识符声明过的变量以及方法,在其他类中可以直接通过类名调用,不用再去实例化一个对象进行调用,但是非静态的方法不能够访问到静态中的成员变量以及方法。

变量的调用 :
一个对象的调用方法要看该变量的存储方式,如果当前变量存储在静态常量池中,那么该变量可以使用“类名.变量名”调用 ,即类名直接调用
如果该变量定义在类中,但是没有用static修饰,那么就需要使用对象来进行调用

class test1{
	public static int i = 0;
	public int j= 1;
}
class test2{
	public static void main(String[] args){
		test1.i;
		test1 t1 = new test1();
		t1.j;
	}
}

构造方法:

每个对象的模板类都还会有一个构造方法,如果程序员在编写类的时候没有设计该类的构造方法,那么在此类加载的时候,系统会默认给当前类添加一个默认的无参构造方法:

public class test{
	public test(){		
		
	}
}

构造方法是用来创建一个对象的方法,它的命名规则是必须与类名相同,并且没有返回值类型约束。在创建一个对象的引用之后,通过new关键字,调用指定类的构造方法,生成该类对象。构造方法能够被重载,但是构造方法没有返回类型的规定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值