Java作为一种面向对象语言,支持以下基本概念:
一个类可以拥有多个方法,在上面的例子中:eat()、run()、sleep() 和 name() 都是 Dog 类 的方法。
- 多态 继承 封装 抽象 类 对象 实例 方法 重载
- 对象:对象是类的一个实例(对象并不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
- 类:类是一个模板,它描述一类对
Java 中的类
类可以看成是创建 Java 对象的模板。
举个案例: - public class Dog {
- String breed;
- int size;
- String colour;
- int age;
- void eat(){ }
- void run() { }
- void sleep(){ }
- void name(){ }
- }
- 类的语法结构:
- (修饰符){
- class 类名
定义构造方法;
定义属性;
定义方法;
- }
注意:类中各成员之间的定义顺序对程序没有任何影响。 - 属性用于定义该类或该类的实例所包含的状态数据,方法则用于定义该类或该类的实例的行为特征或功能实现。
构造方法用于构造该类的实例。
在 Java 语言中创建对象的根本途径是,通过 new 关键字调用某个类的构造方法,即可创建该类的实例
'(4)方法的调用
对象名.方法名(【参数】)
-
一个类可以包含以下类型变量:
- 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
- 成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
- 类变量:类变量也声明在类中,方法体之外,但必须声明为 static 类型。
创建对象
对象是根据类创建的。在Java中,使用关键字 new 来创建一个新的对象。创建对象需要以下三步:
- 声明:声明一个对象,包括对象名称和对象类型。
- 实例化:使用关键字 new 来创建一个对象。
- 初始化:使用 new 创建对象时,会调用构造方法初始化对象。
下面是一个创建对象的例子:
public class Puppy{
public Puppy(String name){
//仅有一个参数:name
System.out.println("小狗的名字是 : " + name ); }
public static void main(String[] args){ // 下面的语句将创建一个Puppy对象
Puppy myPuppy = new Puppy( "tommy" ); }
}
运行结果:小狗的名字是 : tommy
对象和引用
当一个对象被创建成功后,该对象将保存在堆内存中,Java 程序不允许直接访问难内存中的对象,只能通过对象的引用访问该对象。无论是数组还是对象,都只能通过引用来访问它们。
方法的声明
方法的声明包含方法头和方法体两部分,方法的声明格式如下:
【<修饰符>】<返回类型><方法名>(1 参数列表 ]){ 方法体)
(声明说明如下:
方法声明包括方法头和方法体两部分,其中方法头包括修饰符、返回类型、方法 名和参数列 表;方法体在花括号内的声明部分和语句部分,用于描述方法的功能。
方法的调用
说明:
如果方法的返回类型为void,说明方法没有返回值,所以在 main( 方法中调用 时可以将 此方法作为一条语向直接在程序中使用
方法参数传递
参数的传递是指实际参数向形参值的传递的过程。如果声明方法时包含形参的声 明,则调用 方法时必须为这些形参指定参数值,调用方法时实际传给形参的参数 值被称为实参。实参是 由Java 方法的参数传递机制所控制的,Java 中方法参数传 递方式只有一种,即值传递。所谓 值传递就是将实参的副本(复制品)传递给形 参,而实参本身不会受到任何影响。
可变形参方法
1.可变方法声明
可变方法的声明格式如下:
【<修饰符>】<返回类型><方法名>(变量类型:.变量名) {方法体}
构造方法
每个类都有构造方法。如果没有显式地为类定义构造方法,Java 编译器将会为该类提供一个默认构造方法。
在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。
下面是一个构造方法示例:
public class Puppy{
public Puppy(){ }
public Puppy(String name){
//仅有一个参数:name }
}
访问实例变量和方法
通过已创建的对象来访问成员变量和成员方法,如下所示:
/* 实例化对象 */
Object referenceVariable = new Constructor();
/* 访问类中的变量 */
referenceVariable.variableName;
/* 访问类中的方法 */
referenceVariable.methodName();
此处自己领悟,学习是自己的事,别人只能给你一点建议,想成功是要靠自己。
补充:
Java 包
包主要用来对类和接口进行分类。当开发 Java 程序时,可能编写成百上千的类,因此很有必要对类和接口进行分类。