1.1クラス
クラスの概念を1.1.1
Lタイプ(クラス)と物体(オブジェクト)は、コアのオブジェクト指向の概念です。
- クラスは、説明したもののクラスである概念的な抽象化の定義ということであり、現実の世界では、物事は、クラスを形成するために、共通の抽象化を持っている、クラスは参照型であり、現実の世界のように存在していない、それは人々は、脳抽象的な概念から出てきます。
- オブジェクトは、物事の各個々のクラスで実際に存在し、したがっても知らインスタンス(インスタンス)。
- 「すべてはすべてがオブジェクトです」
1.1.2クラスのメンバーとクラス
現実の世界では、すべてのものは、分子、原子で構成されています。同様に、世界を構成するクラスの多くの異なる機能で構成されているJavaコード。分子、原子の現実の世界では、順番に、何がそれを構成していますか?核子、電子!その後、あまりにもクラスのものを記述するために使用されるJavaクラスは、クラスのメンバーは以下のとおりです。属性(フィールド)、メソッド(方法)、コンストラクタ、および内部クラスのコードブロック。
クラスPerson { // 属性やメンバ変数 文字列の名前。 ブールisMarried; // コンストラクタ パブリック人(){} 公共人(文字列N、ブールIM){ NAME = N; isMarried =イム。 } // メソッドや関数 公共ボイド徒歩(){ System.out.println( "男の歩行..."); } パブリック列表示(){ リターン "名字是:" +名+ "既婚:" + isMarried。 } // コードブロック { 名前=「HanMeiMei」。 年齢= 17; = falseをisMarried。 } // 内部クラス クラスのペット{ String name; float weight; } } |
1.1.3 类的定义
类型修饰符 class 类名 extends 父对象名称 implements 接口名称{ 属性声明; 方法声明; } |
说明:修饰符public:类可以被任意访问。类的正文要用{ }括起来
public class Person{ private int age ; //声明私有变量 age public void showAge(int i) { //声明方法showAge( ) age = i; } } |
【创建Java自定义类的步骤】
①定义类(考虑修饰符、类名)
②编写类的属性(考虑修饰符、属性类型、属性名、初始化值)
③编写类的方法(考虑修饰符、返回值类型、方法名、形参等)
1.1.4 类的成员之一:属性
语法格式:
修饰符 类型 属性名 = 初值 ; |
说明: 修饰符private: 该属性只能由该类的方法访问。修饰符public: 该属性可以被该类以外的方法访问。类型:任何基本类型,如int、boolean或任何类。
public class Person{ private int age; //声明private变量 age public String name = “Lila”; //声明public变量 name } |
成员变量(属性)和局部变量的区别:
l 成员变量:在方法体外,类体内声明的变量
- 成员变量定义在类中,在整个类中都可以被访问。
- 成员变量分为类成员变量(以static修饰)和实例成员变量(不以static修饰),实例变量存在于对象所在的堆内存中。
- 成员变量有默认初始化值,为该类型的默认值。
- 成员变量的权限修饰符可以根据需要,选择任意一个
l 局部变量:在方法体内部声明的变量
- 局部变量只定义在局部范围内,如:形参(方法签名中定义的变量)、方法内、代码块内等。
- 局部变量存在于栈内存中。
- 作用的范围结束,变量空间会自动释放。
- 局部变量没有默认初始化值,每次必须显式初始化(形参不用)。
- 局部变量声明时不指定权限修饰符
1.1.5 类的成员之二:方法
语法格式:
修饰符 返回值类型 方法名 (参数列表) { 方法体语句; } |
说明:修饰符:public, private等。返回值类型:return语句传递返回值。没有返回值:void。
public class Person{ private int age; public int getAge() { return age; } //声明方法getAge public void setAge(int i) { //声明方法setAge age = i; //将参数i的值赋给类的成员变量age } } |
1.1.6 类的成员之三:构造方法(构造器、构造函数,Constructor)
构造方法主要用来创建类的实例化对象,可以完成创建实例化对象的初始化工作。
语法:
[修饰符列表] 构造方法名(形式参数列表){ 方法体; } |
说明:构造方法的方法名必须和类名一致;构造方法修饰符列表:public、proteced、private
构造方法的作用:
①创建对象
②给创建的对象的属性(成员变量)赋值,即初始化成员变量。
构造方法应该如何调用?
new 构造方法名(实参); //在堆中开辟空间存储对象 |
注意:
①如果一个类没有提供任何构造方法,系统默认提供无参数构造方法。如果一个类已经手动的提供了构造方法,那么系统不会再提供任何构造方法。
②成员变量到底什么时候赋值:只有在调用构造方法的时候,才会给成员变量赋值。
③类的多个构造器之间构成重载
④类对象的属性赋值的先后顺序:属性的默认初始化>属性的显式初始化>通过构造器给属性初始化>通过"对象.方法"的方式给属性赋值
【eclipse操作】
快速生成构造器:菜单栏Source à Generate Constrctor using Fields…
快速生成get,set方法:菜单栏Source à Generate Getters and Setters…
1.1.7 类的访问机制
在一个类中,类中的方法可以直接访问类中的成员变量(例外:static方法访问非static,编译不通过)。在不同类中,先创建要访问类的对象,再用对象访问类中定义的成员。
1.1.8 类的内存
Animal a3=a1;a3.name=“维尼熊”; //此时若将a3的属性改变,那a1的属性也被改变了
//a3不意味着相较于a1重新创建的一个对象,而是a1与a3共用一个对象实体