什么是对象? 如何构造方法? 什么是this

程序员成长之旅 · 程序员成长之旅/Java学习/笔记 · 1034 字

一句话总结 对象就是类的具体实现 如果说吧对象看做为具体,那么相对的 类 就是生产车间的蓝图,需要我们去做具体的行为去生产 就像游乐园门前的你

那么我们真正的去游乐园游玩呢,首先我们要买票/登记(看作为创建对象), 以下代码演示了如何创建类 构造方法 创建对象 public class Park{//创建一个类,此时在内存中没有实例,等待调用. int age; String name; int Error; public Park(){//无参数构造器 传初始化参数在这个阶段完成 而方法只是写逻辑 不包含this.xxx=xxx这种东西. System.out.println("请出示您的身份证明!"); Error=1;//初始化阶段完成错误判断 } public Park(String name,int age){//带参数构造器,如果有带参数构造器则必须有无参数构造器. this.name=name; this.age=age; } public void register(){ if(Error!=1){//如果发现错误则无需执行以下程序 if(age>=18){ System.out.println("认证成功,欢迎你!["+name+","+age+"]"); }else{ System.out.println("对不起["+name+"],您的年龄["+age+"]不足以进入本游乐园,请满18后再来."); } }else{ System.out.println("请出示您的身份证明!"); } } public static void main(String[] args){ Park DaLi = new Park("DaLi",18);//Park 类型的DaLi 此时 内存中有了实例 DaLi.register();//此时我们可以通过Park类型的DaLi去调用Park的方法,此时实现了注册登记. Park ZhangSan = new Park("ZhangSan",16); ZhangSan.register(); Park LiSi = new Park();//这里的LiSi没有出示他的身份证明. LiSi.register();//强行注册出发错误 } }

x

1 public

class

Park { //创建一个类,此时在内存中没有实例,等待调用. 2

int

age ; 3

String

name ; 4

int

Error ; 5

public

Park (){ //无参数构造器 传初始化参数在这个阶段完成 而方法只是写逻辑 不包含this.xxx=xxx这种东西. 6

System . out . println ( "请出示您的身份证明!" ); 7

Error

1 ; //初始化阶段完成错误判断 8 } 9

public

Park ( String

name , int

age ){ //带参数构造器,如果有带参数构造器则必须有无参数构造器. 10

this . name

name ; 11

this . age

age ; 12 } 13

public

void

register (){ 14

if ( Error != 1 ){ //如果发现错误则无需执行以下程序 15

if ( age

= 18 ){ 16

System . out . println ( "认证成功,欢迎你![" + name + "," + age + "]" ); 17 } else { 18

System . out . println ( "对不起[" + name + "],您的年龄[" + age + "]不足以进入本游乐园,请满18后再来." ); 19 } 20 } else { 21

System . out . println ( "请出示您的身份证明!" ); 22 } 23 } 24

public

static

void

main ( String [] args ){ 25

Park

DaLi

=

new

Park ( "DaLi" , 18 ); //Park 类型的DaLi 此时 内存中有了实例 26

DaLi . register (); //此时我们可以通过Park类型的DaLi去调用Park的方法,此时实现了注册登记. 27

Park

ZhangSan

=

new

Park ( "ZhangSan" , 16 ); 28

ZhangSan . register (); 29 30 31

Park

LiSi

=

new

Park (); //这里的LiSi没有出示他的身份证明. 32

LiSi . register (); //强行注册出发错误 33 } 34 } 运行结果: 认证成功,欢迎你![DaLi,18] //DaLi满足年龄要求,成功进入游乐园. 对不起[ZhangSan],您的年龄[16]不足以进入本游乐园,请满18后再来. //ZhangSan不满足要求 被拒之门外.

在使用时注意,成员变量可以被本类的所有方法所使用,同时可以被与本类有关的其他类所使用。而局部变量只能在当前的方法中使用。

在这里我们要讲到一个关于作用域的知识了。作用域可以简单地理解为变量的生存期或者作用范围,也就是变量从定义开始到什么时候消亡。

局部变量的作用域仅限于定义它的方法内。而成员变量的作用域在整个类内部都是可见的。 同时在相同的方法中,不能有同名的局部变量;在不同的方法中,可以有同名的局部变量。 成员变量和局部变量同名时,局部变量具有更高的优先级。 大家可以编写代码验证一下。