Java类、构造方法、对象、对象引用

(新手创作,如有哪里表示不对,欢迎各位读者大大们指出o.o)

目录

一、类是什么

(1)类的声明

(2)类体

【1】成员变量

【2】局部变量

【3】方法

二、对象

(1)对象的声明

(2)为声明的对象分配变量


一、类是什么

像如c语言函数一样,类是java源文件最重要的组成部分,一个源文件由一个或多个类组成,但是有且只有一个主类,主类名需和java源文件名相同,取名格式为合法的java标识符,其中有以下要求:

1.如果类名使用拉丁字母,首字母应当大写,例如Hello、Bye等;

2、类名应当意思清晰,见名知意。当类名由几个单词组成时,每个单词首字母应当大写,例如:MyFamily、PlayFootball等。

(1)类的声明

要使用类,应当先定义类,类的定义分为两部分:类声明和类体,基本格式为:

class 类名{//class为关键字,用来声明类
类体
}

(2)类体

类体由变量和方法组成,变量又分为成员变量局部变量,(成员变量又可细分为类变量和实例变量,这里不细讲),方法和C语言函数相似(区别在于方法在类中定义声明,而函数不能在函数中定义)。

【1】成员变量

成员变量是指在类中但不在方法中声明的变量,成员变量可以是java中任何一种数据类型,例如

class Test{
boolean male;
byte b;
int c;
float d;
double e;
char f;
}

除了这些基本类型,还包含引用类型:数组、对象和接口

成员变量如果你没有初始化,Java编译器会自动会为其指定默认值,其中常见的int型为0,char型为‘\0’,浮点型型为0.0。成员变量在类中每个地方都有效,与它在哪个位置无关;

【2】局部变量

局部变量又叫域变量,顾名思义,就是只在某个区域内存在有效的变量,在方法中声明的变量就是局部变量,与成员变量不同,Java编译器不会给其加上默认值,如果运行时没有赋予局部变量初始值,可能会导致编译失败,例如:

class Test{
void main(){
int b;//声明一个局部变量b,不赋予初始值
System.out.println(b);//显示编译错误,b没有初始值
}
}

局部变量命名时尽量不要与成员变量重名,如果重名,会优先使用局部变量

class Test{
int a=10;//声明成员变量a
int main(}{
int a=5;//声明局部变量a,优先使用局部变量a
System.out.println(a);//所以这里会打印除局部变量a,打印结果为5
}
}

在成员变量和局部变量重名的情况下,如果在方法中想重新使用成员变量,应当在变量名前加一个this.

class Test{
int a=10;//声明成员变量a
int main(}{
int a=5;//声明局部变量a,优先使用局部变量a
System.out.println(this.a);//因为在a前加了一个this.,所以这里是成员变量a,打印结果为10
}
}

【3】方法

方法分为实例方法、类方法以及构造方法(这里只讲实例方法与构造方法),方法由方法头和方法体组成:

方法类型 方法名(){
方法体
}

例如:

void java(){//void为java()方法的类型,()中存放形参也可以无参
int a;
System.out.println(a);//由{}括起来的部分为方法体
}

该例子为一个实例方法,其中,void类型的变量不需要返回值给方法,但是其他类型的方法必须要有return语句。

而构造方法类中的一种特殊方法,当程序需要创建对象时,就要用到构造方法,构造方法没有类型,方法名必须与它所在的类名一致,其他写法与实例方法一致,一个类中可以有若干个构造方法,但是必须保证它们的参数不同,这里的参数不同要满足以下条件之一:

1.参数个数不同;

2.如果参数个数相同,则必须要保证至少有一个参数的类型不同。

如果你没有编写构造方法额,则程序会自动默认该类有一个构造方法,但不会显示,格式例如

Test(){//假设该类的类名为Test,程序默认的构造方法
}

二、对象

上文我们介绍了类,类中的变量以及方法可以看做是该类的基本属性,但是类是一个面向对象的一种数据类型,创建对象,其实就是以类为模版,创建一个实例分配类中的基本属性,用实例来引用类中的变量和方法。

对象的创建包括:声明对象和为声明的对象分配变量

(1)对象的声明

一般格式为

类的名字 对象的名字

例如:

Test test//Test为类名,test为对象名

实际上,上面的写法并不是对对象的声明,而是对对象的引用声明,对象的引用相似于C语言的指针,是指向于对象,如果只是声明对象的引用,对象引用并不知道要引用哪个对象,就像绳子不知道绑哪个气球。

(2)为声明的对象分配变量

 使用new操作符和类的构造方法为声明的对象分配变量,程序会开辟内存给对象储存变量,例如:

Test test=new Test();

但如果只是创建了对象并分配给了变量而没有赋值给对象引用,虽然对象客观存在,但是对象引用无法引用该对象,除非把对象赋值给对象引用。

new Test();
//创建了一个Test类的对象,但是并不知道对象的引用,虽然客观存在该对象,但无法引用该对象

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值