前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaSE 基础学习之二 —— Java 的部分基本语法

JavaSE 基础学习之二 —— Java 的部分基本语法

作者头像
剑影啸清寒
发布2019-05-26 10:06:46
4020
发布2019-05-26 10:06:46
举报
文章被收录于专栏:琦小虾的Binary琦小虾的Binary

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1434894

接上文《JavaSE 基础学习之一 —— Java 的简介》


二. Java 的部分基本语法

注:本篇文章部分记录时,老师默认我们有较佳的编程功底,故该部分讲的不深入,所以本篇笔记整理的比较简单随意。

1. 类

  • 类的成员变量:把数据(属性)进行抽象,用变量表示;
  • 类的成员函数:把行为进行抽象,用函数(方法)表示;

类中只能有成员变量和成员函数。

2. 对象

对象就是类的具体实例。

3. 构造函数

  • 函数名和类名相同;
  • 无任何返回值类型,连 void 都没有;
  • 构造函数的主要作用是给成员变量初始化;
  • 创建对象时,构造函数会自动调用,创建一次对象,就会调用一次构造函数。
代码语言:txt
复制
- 如果一个类没有写构造函数,则 jvm 会给一个**无参数的默认构造函数**,即 **public 类名 (){}**;
- 一旦自己声明了构造函数,则这个无参数的默认构造函数就不存在了;

注:Java 数据变量的默认值都为 0

4. this 引用

  • this 引用是指当前对象的引用,即调用该函数的那个对象的引用;
  • 什么时候可以省略 this ?
代码语言:txt
复制
- 一个普通的成员函数访问一个普通的成员变量,前面都可以省略 thisthis(args) 的函数调用:在一个构造函数中的

5. 函数重载

  • 函数重载,即同一个类中的一组函数,函数名称相同,形参不同,与返回值类型无关。
  • 调用时,回根据参数的个数和类型自动匹配。
代码语言:txt
复制
- 注:匹配过程中,系统会找**最精确**的函数,如果找不到的话,就会寻找能够匹配上的函数;

6. 构造函数的重载

略。

7. 可变参数

  • Java 中的数组,略
  • 如果有多个参数,可变参数必须是最后一个,jvm 会将其当做数组处理;

例:

代码语言:javascript
复制
int add(int ...a) {
    int sum = 0;
    for(int i : a) sum += i;
    return sum;
}

练习:

写一个点类:

  • 行为:
代码语言:txt
复制
- 求一个点到圆心的距离
- 求一个点到另外一个点的距离注:用到 Math.sqrt()

作业:

代码语言:javascript
复制
package MyPoint;

public class MyPoint {
    MyPoint(double x, double y) {
        this.x = x;
        this.y = y;
    }
    double x, y;

    double calcuRawDistance() {
        return Math.sqrt(x*x + y*y);
    }
    double calcuDistance2pt(MyPoint pt) {
        return Math.sqrt(Math.pow((this.x - pt.x), 2) + Math.pow((this.y - pt.y), 2));
    }

    public static void main(String[] args) {
        MyPoint pt1 = new MyPoint(1,2);
        MyPoint pt2 = new MyPoint(5,7);
        System.out.println("Raw Distance: " + pt2.calcuRawDistance());
        System.out.println("Distance to Point1: " + pt2.calcuDistance2pt(pt1));
    }
}

8. 定义初始化

  • 在构造函数之前执行定义初始化。每次创建对象,都会调用一次定义初始化与构造函数。

注:Java 在类中的成员定义时,无顺序关系,都是并列的。

9. 静态成员

静态成员变量

  • 静态成员变量属于类,不属于某个实例对象,所有实例对象共享同一个静态成员变量。
  • 用到类,静态成员变量就会加载,且只加载一次。
  • 静态成员变量的调用在定义初始化与构造函数之前。
  • 静态成员直接用类名访问,也可以通过对象进行访问,不过不建议。
  • 静态定义初始化

静态成员方法

如:

代码语言:javascript
复制
public class Adder {
    // 参数的 ... : jvm 底层将其自动当做数组传入
    static int add(int...a) {
        int sum = 0;
        for(int i : a) {
            sum += i;
        }
        return sum;
    }
}
  • 一般使用类名进行访问,如上例中,调用方法为:Adder.add();
  • 也可以通过对象访问,不过不建议;
  • 静态成员方法只能访问静态成员;

练习:

写一个点类(坐标,构造函数,到圆心的距离,到另外一个点的距离)

再写一个矩形类:

  • 成员: 左上角坐标,宽度和高度(用于确定一个矩形)
  • 方法: 判断一个点在不在矩形内,计算矩形的面积和周长;

作业:

代码语言:javascript
复制
package MyPoint;

public class Rect {
    MyPoint location;
    double width, height;

    Rect(MyPoint location, double width, double height) {
        this.location = location;
        this.width = width;
        this.height = height;
    }

    Rect(double x, double y, double width, double height) {
        this(new MyPoint(x, y), width, height);
    }

    double getLength() {
        return 2 * (width + height);
    }
    double getArea() {
        return width * height;
    }
    boolean contains(MyPoint p) {
        return p.x >= location.x && p.y >= location.y 
                && (p.x - location.x) <= width && (p.y - location.y) <= height;
    }
    boolean contains(double x, double y) {
        return contains(new MyPoint(x, y));
    }
}

10. 包,访问权限

  • 包 Package - 包是类名的一部分,如 aa.Person 中,aa 即为包名;
代码语言:txt
复制
- import 用于导入包;
- java.lang 包下的类不用导包,可以直接使用;
代码语言:txt
复制
- **public** - 可以修饰类,成员,可以在不同包下访问;
- **private** - 用于修饰成员,只能在**类的内部访问**;
- **默认的** - 只能在同一包下访问;
- **protected** - 在同一包下可以访问,不同包下的子类可以访问;

接下篇《JavaSE 基础学习之三 —— Java 的继承与接口》

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年05月25日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 二. Java 的部分基本语法
    • 1. 类
      • 2. 对象
        • 3. 构造函数
          • 4. this 引用
            • 5. 函数重载
              • 6. 构造函数的重载
                • 7. 可变参数
                  • 8. 定义初始化
                    • 9. 静态成员
                      • 10. 包,访问权限
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档