第一次写博客,心情棒棒哒!
类和对象在学C++和C时都有接触,简单用一句话来概括:类是抽象的,对象是具体的,对象是类的实例化。这句话理解起来却并不容易,举个生活中例子:
狗是一个类,
我养的这只狗就是一个对象
所以对象就是指具体的某一事物,而类就是对一些对象共同点的描述。
Java中的类有属性和方法,属性就是类的特征,方法是用来描述类的行为的。继续上面的例子,狗有很多特征,比如品种、大小、毛色等等这些都是属性。狗能跑、能啃骨头、能摇尾巴这些都是狗的行为,也就是所说的方法。
每个类都有构造方法,构造方法是一种特殊的方法。它的特殊性主要体现在以下几点:
构造方法的名字和类名相同
构造方法要有返回值,返回值的类型就是方法名,也就是类名。
构造方法不需要声明返回值类型。
那么构造方法有什么作用呢?
1、创建对象
如创建一个Student类的对象stu:
Student stu=new Student();
这里new是关键字,在栈中创建一个对象,相应在堆中开辟一块空间。
后面的Student()就是构造方法,通过new加构造方法来创建对象stu
2、规范某些属性的值(初始化属性)
这里不再举例,具体见下面代码
此外一个类中如果没有自己定义构造方法,系统都会默认生成一个没有参数没有返回值类型的构造方法。
class="java" name="code">
package com.jw905;
//类的格式:public class 类名
public class Dog
{
//属性格式:限定符 数据类型 属性名
private String breed;
private String color;//private限定符表示只能在当前类内部访问,保护属性
//构造器,不用声明返回类型
public Dog()
{
this("京巴");//调用下面一个构造方法,初始化breed的值
}
public Dog(String breed)
{
this.breed=breed;
}
public void setColor()
{
this.color=color;
}
public String getColor()
{
return color;
}
//setter、getter方法使外界可以获取这个属性
public void run()
{
System.out.println(breed+"在跑!");
}
public static void main(String[] args) {
Dog dog=new Dog();//创建对象
dog.run();
}
}
上面代码中构造方法调用了构造方法来初始化breed的值,需要强调的是只有构造方法才能调用构造方法,普通的方法是不可以调用的。