java对象结构,Java学习对象和类
java对象结构,Java学习对象和类在创建一个对象的时候 至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。构造方法:每个类都有构造方法。如果没有显示的为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。下图中 男孩(boy) 、 女孩(girl) 、为 类(class) ,而具体的每个人为该类的 对象(object) :通过上图可以定义一个Java类:/* 定义名为 Boy 的类,该类包含两个属性和两个行为 */ public class Boy{ String name;//定义了名为 name 的 String类型属性 int age;//定义了名为 age 的 int类型属性 void run(){//定义了名为run的行为(方法) } void walk(){//定义了名为walk的行为(方法) } }一个类可以包含一下类型变量:局部变量
对象和类从认识的角度考虑是先有对象后有类。对象,是具体的事物。类,是抽象的,是对对象的抽象。
从代码运行角度考虑是先有类后有对象。类是对象的模板。
对象:对象是类的一个实例,有状态和行为。
类:类是一个模板,它描述一类对象的行为和状态。
下图中 男孩(boy) 、 女孩(girl) 、为 类(class) ,而具体的每个人为该类的 对象(object) :
通过上图可以定义一个Java类:
/*
定义名为 Boy 的类,该类包含两个属性和两个行为
*/
public class Boy{
String name;//定义了名为 name 的 String类型属性
int age;//定义了名为 age 的 int类型属性
void run(){//定义了名为run的行为(方法)
}
void walk(){//定义了名为walk的行为(方法)
}
}
一个类可以包含一下类型变量:
- 局部变量 :在方法、构造方法或者语句块中定义的变量,变量声明和初始化都是在方法中,方法结束后变量就会自动销毁。
- 成员变量 :成员变量是定义在类中,方法体之外的变量,这种变量在创建对象的时候实例化,成员变量可以被类中方法、构造方法和特定类的语句块访问。
- 类变量 :类变量也定义在类中,方法体之外,但必须是static修饰符修饰的变量。
一个类可以拥有多个方法,在上面的例子中:run()、walk()都是Boy类的方法。
构造方法:每个类都有构造方法。如果没有显示的为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。
在创建一个对象的时候 至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。
下面示例,为上面的Boy类定义构造方法 :
public class Boy{
String name;
int age;
void run(){
}
void walk(){
}
public Boy(){
//这是最简单的构造方法
}
public Boy(String name){
//这个构造方法仅有一个参数:name
System.out.println("我的名字是:" name)
}
}
创建对象:
对象是根据类创建的。在Java中,使用关键字 new 来创建一个新的对象。创建对象需要以下三步:
- 声明:声明一个对象,包括对象名称和对象类型。
- 实例化:使用关键字 new 来创建一个对象。
- 初始化:使用 new 创建对象时,会调用构造方法初始化对象。
下面是一个创建对象的例子:
public class A{
public A(String name){
//这是个只有一个参数的构造方法
System.out.println("我的名字是:" name);
}
public static void main(String[] args){
A myA = new A("type(光)");//这里用关键字 new 创建对象
}
}
编译并运行上面代码,会打印一下结果 :
我的名字是:type(光)
学习笔记:为什么Java文件中只能含有一个public类?Java程序是从一个 public 类的 main 方法开始执行的,就像 C 程序是从 main() 函数开始执行一样。只能有一个 public 类是
为了给类装载器提供方便。一个 public 类只能定义在以它的类名为文件名的文件中。
每个编译单元(文件)都有一个 public 类。因为每个编译单元都只能有一个公共接口,用 public 类来表现。该接口可以与文件
名相同(严格区分大小写)。当然一个编译单元内也可以没有 public 类。
类变量类型public class A(){
int age;//成员变量
public static void main(String[] args){
}
}
public class A(){
static int age;//类变量
public static void main(String[] args){
}
}
public class A(){
public static void main(String[] args){
int age;//局部变量
}
}
类的构造方法
- 构造方法的名字和类相同,可以有多个构造方法,并且没有返回值。
- 构造方法主要用于为类的对象定义初始化状态。
- 不能直接调用构造方法,必须通过关键字 new 来自动调用,从而创建类的实例
- Java的类都要求有构造方法,如果我们没有自己定义构造方法,Java编译器会默认提供一个无参数的构造方法。
- 为对象分配内存空间。
- 引起对象构造方法的调用
- 为对象返回一个引用。