JAVA学习资料(4)————类的创建

  这节课啊,就是实际操作啦,现在咱们就要弄一个类出来啦,这节课是操作部分奥,硬货奥,很难奥

JAVA学习资料(4)————类的创建

一、类的构造

  当代码中写完一个类之后,如果想用这个类,是要给这个类初始化的对叭,就是要让代码运行到这个类里面,这个初始化就叫做类的“构造”,构造函数到底是干什么用的呢,他可以给类里面的变量提前赋好值,在调用类(创建类的对象)的时候,会首先调用类的构造函数。
  要注意哦,构造函数其实也可以带参数的,
  每个类都有构造函数。如果没有写构造函数,Java 编译器将会为该类提供一个默认构造函数。
  在创建一个对象的时候,至少要调用一个构造函数。构造函数的名称必须与类同名,一个类可以有多个构造函数。
下面是一个构造函数示例:

public class Maomao{
    public Maomao() //这个就是构造函数哦,写在类的里面,这个构造函数就是没有参数的,括号里面啥也没有
    {
    }
}

给自己补充一点知识,你不用看,关于JAVA的析构函数:

与 Java 不同,C++ 支持局部对象(基于栈)和全局对象(基于堆)。因为这一双重支持,C++ 也提供了自动构造和析构,这导致了对构造函数和析构函数的调用,(对于堆对象)就是内存的分配和释放。

在 Java 中,所有对象都驻留在堆内存,因此局部对象就不存在。结果,Java 的设计者觉得不需要析构函数(像 C++ 中所实现的)。

Java 定义了一个特殊的方法叫做finalize() ,它提供了 C++ 析构函数的一些功能。finalize() 方法作用的一个关键元素是 Java 的垃圾回收器。 当垃圾回收器将要释放一个对象的内存时,它调用该对象的finalize() 方法(如果该对象定义了此方法)。

java有垃圾自动回收机制,一般不需要自己写!

不过垃圾回收器以独立的低优先级的方式运行,只有当其他线程挂起等待该内存释放的情况出现时,它才开始运行释放对象的内存。(事实上,你可以调用System.gc() 方法强制垃圾回收器来释放这些对象的内存。)

二、创建类的对象

  类的对象就是,这个类叫小猫,那对象就是白猫、黑猫这些猫
  写个例子叭:

public class Maomao{
   public  Maomao(int age)//这个构造函数里面有参数哦,参数是一个int类型的变量
   {
      System.out.println("小猫的年龄是 : " + age ); //输出一些信息
   }
   public static void main(String[] args)//这里是主函数哦,程序从这里开始
   {
      // 下面的语句将创建一个Maomao对象baimao
       Maomao baimao = new  Maomao( 3 );//这个3就相当于那个参数age,传入到构造函数里面了
       //然后程序就跳到构造函数那里了
   }
}

  所以这个程序的运行结果就是:小猫的年龄是 :3

接下来呢,我们在这个类里面再加入一个函数,不过这个函数不会像构造函数一样自动运行哦,然后我们再加一个变量

public class Maomao{
	int maomaoage;
   public  Maomao(int age)//这个构造函数里面有参数哦,参数是一个int类型的变量
   {
      System.out.println("小猫的年龄是 : " + age ); //输出一些信息
    }
    
    public void setAge( int age )//这个新加的函数,你在调用它的时候,会把类里面的这个变量maomaoage赋值
    {
       maomaoage = age;
   }
   
   public int getAge( )
   {
       System.out.println("小猫的年龄为 : " + maomaoage ); //这里输出的就是类里面的变量maomaoage了哦
       return maomaoage;//这里的返回值还吧类里面的变量maomaoage返回回去了
   }
   
   public static void main(String[] args)//这里是主函数哦,程序从这里开始
   {
      // 下面的语句将创建一个Maomao对象baimao
       Maomao baimao = new  Maomao( 3 );//这个3就相当于那个参数age,传入到构造函数里面了
       //然后程序就跳到构造函数那里了
   }
}

  那,运行这个程序,运行结果还是 小猫的年龄是 :3 因为刚才写的那两个函数根本就没有调用对吧,他不是自动调用的,所以运行结果还是没变,接下来我们就要用这个程序了哦,准备好了嘛

三、访问类中变量和函数

  访问类中的变量:对象名.变量名;
  访问类中的函数:对象名.函数名();
  接下来是实例哦,修改一下主函数,看好啦

public class Maomao{
	int maomaoage;
   public  Maomao(int age)//这个构造函数里面有参数哦,参数是一个int类型的变量
   {
      System.out.println("小猫的年龄是 : " + age ); //输出一些信息
    }
    
    public void setAge( int age )//这个新加的函数,你在调用它的时候,会把类里面的这个变量maomaoage赋值
    {
       maomaoage = age;
   }
   
   public int getAge( )
   {
       System.out.println("小猫的年龄为 : " + maomaoage ); //这里输出的就是类里面的变量maomaoage了哦
       return maomaoage;//这里的返回值还吧类里面的变量maomaoage返回回去了
   }
   
   public static void main(String[] args)//这里是主函数哦,程序从这里开始
   {
      // 下面的语句将创建一个Maomao对象baimao
       Maomao baimao = new  Maomao( 3 );//这个3就相当于那个参数age,传入到构造函数里面了
       //然后程序就跳到构造函数那里了
       int a=0;//这里先定义一个a
      baimao.setAge( 2 );//这个函数就把类里面的 maomaoage 变成2了
      a=baimao.getAge( );//这样的话a就是2了,顺便也输出了 maomaoage 的值
      System.out.println("变量值 : " + baimao.maomaoage ); //这样是直接输出maomaoage的值
      System.out.println("a : " + a );//输出那个getAge的返回值,也就是maomaoage的值
   }
}

这个程序运行之后呢,先会进入构造函数里面输出一行这个:
小猫的年龄是 :3
然后呢,接着回来往下执行,int a了,然后执行 baimao.setAge( 2 ),这样maomaoage就变成了2
然后接着回来往下执行a=baimao.getAge( );进入到getAge函数,输出
小猫的年龄是 :2
顺便把maomaoage的值返回给a
然后接着回来往下执行System.out.println("变量值 : " + baimao.maomaoage ); 直接输出maomaoage:
变量值 :2
然后执行System.out.println("a : " + a );输出a的值:
a :2

  

  好了好了,太多啦太多啦,再听就太费脑子了,下节课再学吧,今天就到这里了哦,晚安。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值