java中关于构造方法的理解

在类实例化的过程中自动执行的方法叫做构造方法,它不需要你手动调用。构造方法可以在类实例化的过程中做一些初始化的工作。 构造方法的名称必须与类的名称相同,并且没有返回值。 每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认的构造方法

下面是关于构造方法的使用示例:

 1  public class Dog{
 2  2         String name;
 3  3         int age;
 4  4        //构造函数
 5  5         Dog(String name1, int age1){
 6  6             name = name1;
 7  7             age = age1;
 8  8             System.out.println("感谢主人领养了我");
 9  9         }
10 10
11 11         void bark(){
12 12             System.out.println("汪汪,不要过来");
13 13         }
14 14
15 15         void hungry(){
16 16             System.out.println("主人,我饿了");
17 17         }
18 18
19 19         public static void main(String arg[]){
20 20             Dog myDog = new Dog("花花", 3);//声明+实例化+初始化myDog
21 21             // 访问成员变量
22 22             String name = myDog.name;
23 23             int age = myDog.age;
24 24             System.out.println("我是一只小狗,我名字叫" + name + ",我" + age + "岁了");
25 25             // 访问方法
26 26             myDog.bark();
27 27             myDog.hungry();
28 28         }
29 29     }

运行结果为:

感谢主人领养了我

我是一只小狗,我名字叫花花,我3岁了

汪汪,不要过来

主人,我饿了

时间: 03-03

java中关于构造方法的理解的相关文章

Java中的构造方法总结

Java中的构造方法总结 时间: 2013-11-05 08:49 来源: 未知 作者: 站长部落 点击: 1752 次 今天写代码突然发现Java的构造方法也有不少说法呢,闲来无事,总结一下: 构造方法和实例方法的区别: 一.主要的区别在于三个方面:修饰符.返回值.命名 1.和实例方法一样,构造器可以有任何访问的修饰符,public.private.protected或者没有修饰符   ,都可以对构造方法进行修饰.不同于实例方法的是构造方法不能有任何非访问性质的修饰符修饰,例如static.f

Java中线程同步的理解 - 其实应该叫做Java线程排队

Java中线程同步的理解 我们可以在计算机上运行各种计算机软件程序.每一个运行的程序可能包括多个独立运行的线程(Thread). 线程(Thread)是一份独立运行的程序,有自己专用的运行栈.线程有可能和其他线程共享一些资源,比如,内存,文件,数据库等. 当多个线程同时读写同一份共享资源的时候,可能会引起冲突.这时候,我们需要引入线程"同步"机制,即各位线程之间要有个先来后到,不能一窝蜂挤上去抢作一团. 同步这个词是从英文synchronize(使同时发生)翻译过来的.我也不明白为什么

java中二进制反码补码的理解

7句真言 1,二进制最高位是符号位 0正数 1负数 2,正数的原码,反码,补码都一样 3负数的原码反码 补码 (符号位不变,其他的位数取反 0->1 1->0) 4 0的反码补码都是0 5java中没有无符号数,换句话说,java中的数都是有符号的 6计算机运算的时候,都是以补码的方式来运算的 7,负数的补码 = 他的反码+1

Java中ThreadLocal的深入理解

官方对ThreadLocal的描述: "该类提供了线程局部(thread-local)变量.这些变量不同于它们的普通对应物,因为访问某个变量(通过其get或set方法)的每个线程都有自己的局部变量,它独立于变量的初始化副本.ThreadLocal实例通常是类中的private static字段,它们希望将状态与某一个线程(例如,用户ID或事物ID)相关联." <Thinking in Java>中的描述: 防止任务在共享资源上产生冲突的第二种方式是根除对变量的共享.线程本地

浅谈对Java中ThreadLocal类的理解

首先要明确:ThreadLocal不是一个多线程类,或者应该叫做线程局部变量.这从ThreadLocal的JDK定义中就可以看到 public class ThreadLocal<T>extends Object 可以看出ThreadLocal只是一个普普通通的类,并没有继承自Thread或实现Runnable接口. 同时也可以看到ThreadLocal使用了泛型,这样他就可以操作几乎任何类型的数据了.下面说JDK API代码时具体再说. 对此类,看看JDK API中的部分描述: 该类提供了线

Java中try-catch-finally的一点理解

在只有try-catch语句中,如果catch块中出现了return语句或者抛出了异常,那么catch之后的语句是执行不到的:但是如果将代码放入finally中,即使catch中出现了return语句或者抛出了异常,finally中的代码仍然是可以执行到的.看下面的程序: public class Test { public static void main(String[] args) { // TODO Auto-generated method stub System.out.printl

说说我对java中volatile关键字的理解

首先引用两篇其他作者的文章:1.http://www.infoq.com/cn/articles/ftf-java-volatile    2.http://blog.csdn.net/hupitao/article/details/45227891 “volatile关键字能保证每个线程能读到最新的变量值”,要理解这句话首先明确cpu,寄存器,内存之间的关系.引用文中的一段话: 有volatile变量修饰的共享变量进行写操作的时候会多第二行汇编代码,通过查IA-32架构软件开发者手册可知,lo

Java中的finalize方法理解

首先:system.gc()并不是你调用就马上执行的, 而是根据虚拟机的各种算法来来计算出执行垃圾回收的时间,另外,程序自动结束时不会执行垃圾回收的. 其次:对象被回收时,要经过两次标记,第一次标记,如果finalize被重写,或者finalize被调用过,那么垃圾回收并不会去执行finalize,第二次标记,如果对象不能在finalize中成功拯救自己,那真的就要被回收了. 咱们用的虚拟机一般都是sun的hotspot,以下描述都是针对hotspot虚拟机,当然其他虚拟机也差不多, ,,他是根

java中static关键字的理解

static关键字 解决两种问题 1.   只想为某特定域分配单一的存储空间,而不去考虑究竟要创建多少对象,甚至根本不创建任何对象 2.   希望某种方法不与包含它的任何对象关联在一起,也就是说,即使没有创建对象也能调用这个方法 当static作用于某个字段时,肯定会改变数据创建的方式,因为一个static字段对每个类时只有一份存储空间,而非static字段则是对每一个对象都有一个存储空间 和其他方法一样,static方法可以创建或使用其类型相同的被命名的对象,因此static方法常常被拿来做牧