本帖最后由 海螺螺 于 2020-1-22 21:04 编辑

索引贴:http://www.mcbbs.net/thread-138969-1-1.html
本章内容导读
  • 构造方法与方法
  • 方法与变量的调用
  • this关键字
  • 类的继承
  • 对父类进行访问
  • 重写与重载(扩展篇)(待编辑)
  • 接口的定义与实现(扩展篇)(待编辑)
  • 抽象类和抽象方法(扩展篇)(待编辑)
  • 内部类(扩展篇)(待编辑)

第一节 类
其实前面的代码中我们都有看到过类,但我们并没有具体学习如何定义一个类。
class是类的关键字格式如下
  1. 修饰符 class 类名 {
  2. 代码块
  3. }
复制代码
在代码块里,就是我们定义这个类的属性和方法的地方。

第二节 构造方法与方法
我开始学习这个的时候就被弄糊了。。。这是两个东西?
我们来看一看下面两段代码
  1. public class book {
  2.         String bname;
  3.         int bid;
  4.         int bprice;
  5.         
  6.         
  7.         public void sc(){
  8.          System.out.println("书名:"+bname+",id:"+bid+",价格:"+bprice+"金币");
  9.          
  10.         }
  11.         public static void main(String[] args){
  12.         book book1=new book();
  13.         book1.bname="《成为一名优秀的up主》";
  14.         book1.bid=9527;
  15.         book1.bprice=100;
  16.         book1.sc();
  17.         book book2=new book();
  18.         book2.bname="《制作mod的前置技能——java基础》";
  19.         book2.bid=3721;
  20.         book2.bprice=0;
  21.         book2.sc();
  22.                
  23.                         
  24.         }
  25. }
复制代码
  1. public class book {
  2.         String bname;
  3.         int bid;
  4.         int bprice;
  5.         
  6.         
  7.         public void sc(){
  8.          System.out.println("书名:"+bname+",id:"+bid+",价格:"+bprice+"金币");
  9.          
  10.         }
  11.         public book(String name,int id,int price)
  12.         {
  13.                 bname=name;
  14.                 bid=id;
  15.                 bprice=price;
  16.         }
  17.         
  18.         public static void main(String[] args){
  19.         book book1=new book("《成为一名优秀的up主》",9527,100);
  20.         book1.sc();
  21.         book book2=new book("《制作mod的前置技能——java基础》",3721,0);
  22.         book2.sc();
  23.                
  24.                         
  25.         }
  26. }
复制代码
输出结果:

书名:《成为一名优秀的up主》,id:9527,价格:100金币
书名:《制作mod的前置技能——java基础》,id:3721,价格:0金币
两个程序的输出结果相同。

上面两种都调用的构造方法,但有所不同。在一中,我们并没有定义一个有参数的构造方法,所以使用
  1. 类名 变量名=new 类名()
复制代码
来构造实例,对变量赋值。在第二个程序中,我们定义了一个带有参数的构造方法,所以我们直接调用我们定义的构造方法来进行构造实例与赋值。那么讲了这么多,什么是构造方法?java提供给类的变量赋值初始化的一个方法。
那么,方法又是什么呢?
方法是实现类的行为的,前面也举过例子。
关于构造方法和方法,我的理解是,构造方法是方法的一种,但是是最特殊的一种。(如有理解错误请大神指出)
我们来看看构造方法和方法各自的定义格式
构造方法
  1. 构造方法修饰符 方法名(参数列表)
  2. {
  3. }
复制代码
方法
  1. 修饰符 返回值 方法名(参数列表)
  2. {
  3. }
复制代码
不同点在哪里?构造方法不能被static、final、synchronized、abstract和native修饰。构造方法无需定义返回值。
最后要注意的一点是,构造方法的名称必须与类名相同,一个类可以有多个构造方法。

第三节 方法和变量的调用
我们要明白的一点是,除了用静态修饰符(static)修饰的变量、方法以外,这些东西都是不能直接调用的,我们需要用构造方法创造实例后才能对变量进行初始化或者调用方法。具体格式见上一节。

第四节 this关键字
前面我们讲过全局变量和局部变量,如果全局变量和局部变量的名称一样呢?这个时候,全局变量会被隐藏,不能使用,而在java中,我们可以通过this来对全局变量进行调用。
格式
  1. this.变量名
复制代码


第五节 包
首先,我们知道什么是包。
在java程序中,我们会编写很多很多的类,也就会编译出很多的class文件,我们可以利用包来管理这些文件。
定义包
格式
  1. package 包名
复制代码
我们也可以创建多层次包
  1. package 包名1.包名2.包名3
复制代码
导入包
格式
  1. import 包名1.包名2.····.类名1*
复制代码
类名可以直接用*号,表示导入所有类。
第六节 类的继承
继承是java的一个重要特点,在java的中,常会由一个已经定义的类派生出另外一个类,这就叫做继承,利用继承,我们可以创建一个公共类,这个类具有多个项目的共同属性,然后在然其他类继承其公共类,在添加上自己的特有属性,这是十分便捷的特性。
格式
  1. 修饰符 class 类名 extends 父类名
  2. {
  3. }
复制代码


在通常情况下,我们把子类称为父类的直接子类,把父类成为子类的直接超类。
在java中,一个类只能有一个父类。
假如有AB两类,A是B的子类。C类是A类的引用,那么C可以指向A的方法和变量,也可以指向B的方法和变量。
第七节 对父类进行访问

关键字:super
调用父类的构造方法
  1. super.()
复制代码
调用父类的变量和方法
  1. super.方法名\变量名
复制代码
我们需要注意的是,在子类不使用super时,系统会自动调用父类中默认的构造方法。
修饰符(更多(待编辑))
默认修饰符:没有指定修饰符,则用此,这是变量与方法只能在自己的类及该类同一个包下的类中访问。
public:公共修饰符,若将变量和方法定义为public,那么变量所在的类及其子类都是同一个包中的类,不同包中的类都可以访问变量和方法。
protected:保护修饰符,只能在自己的类和子类中被访问。
private:私有修饰符,自能在自己的类中被访问。
final:被修饰的变量在程序的整个执行过程中最多赋值一次,常被用来定义常量。
static:静态修饰符,被此修饰符修饰的变量方法可以直接调用,不需要用new关键字创建实例。最后还要说明一下
实际上,我们在使用Ec的过程中,包和类的创建等等,Ec都会给你自动完成。

完。。。。基础篇到此结束。。。扩展篇敬请期待。