【Josh】【2】Defining and Using Classes

Josh Hug是CMU一位年轻计算机教授,他讲课风趣幽默且加以实例分析,让人印象深刻。他的所有网课都能在youtube上找到。
本课程并不是一门专门的java课程,java只是Josh选择用于数据结构讲解的一门编程语言,但是Josh假定所有人都没有编程基础,于是从零开始讲java语言。

java 和面对对象

java是一种重点强调类的语言,它会强制你运用OOP的思想。

  • 每一个java文件都必须还有类的声明
  • 所有的java代码都必须写在类里面
  • 为了运行java代码,必须自己定义一个psvm也就是public static void main(String[ ] args)

java语言的要点:

在这里插入图片描述

in java ,all code must be a part of a class
在这里插入图片描述

java和静态类型

众所周知,和C++一样,java也是一门静态类型的语言,具体表现在以下几点:

  • 所有的变量、参数、方法都得声明有明确的类型
  • 且类型不得更改(没有强制类型转换那一说)
  • 在程序运行之前,编译器会检查程序中的所有类型是否兼容!
  • This is unlike a language like Python, where type checks are performed DURING execution.

java静态类型的优劣

优点

  • 容易跟踪查看代码正在解决的问题
  • 它能让你事先发现错误
  • More efficient under the hood.(更有效率,under the hood在后台)

缺点

  • 代码非常冗长
  • 代码不那么通用,使它通用需要更多的代码。

java程序的编译

在这里插入图片描述
.java文件被编译成易于执行的.class文件,而且.class文件在多平台可以执行,实现了java跨平台的梦想。

java中的对象实例化

基本方法和C++没有太大的区别
在这里插入图片描述

  • 在java中,每个方法都要和某个类有关,实际上是所有代码
  • 要运行自己写的一个类,必须先定义一个主方法(main method)

在这里插入图片描述

这种方法完全背离了java设计者们的oop思想,代码可以运行,但是会冗长复杂,降低了代码的可读性,虚化了代码的逻辑。

在这里插入图片描述

Josh的这句话十分经典:类为自己所有的实例对象提供了可效仿的蓝图

在这里插入图片描述

与C++一样,java类也具有自己的构造函数。没有static的函数是非静态方法,非静态方法的调用必须使用实例化后的对象。
在这里插入图片描述

对象的实例化和赋值,以及对象的方法调用。

在这里插入图片描述

对象数组语法也和C++相同,所以说,从C->C++->java,oop的思想越来越浓厚。

java中的静态和非静态方法

主要的不同之处

在这里插入图片描述

  • 静态方法是使用类名来调用的 如 : Dog.makeNoise()
  • 非静态方法是使用对象的名字来调用的:maya.makeNoise()

为什么要有静态方法?

在这里插入图片描述

对于具有普适性的常用函数,声明为静态更方便。

在这里插入图片描述

  • 非静态方法不能使用类名进行调用

public static void main(String[ ] args)

在这里插入图片描述

java这里main函数和C++中的main函数如出一辙,不过后者中有两个参数,前者只有一个参数–命令行参数的字符串数组

using java libraries

在这里插入图片描述

和C++中的STL相似,java也拥有自己的库。

在这里插入图片描述

函数

public class larger
{
    public static int large(int a,int b)
    {
        if (a > b)return a;
        return b;
    }
    public static void main(String[] args)
    {
        System.out.println(large(5, 10));
    }
}

在这里插入图片描述

reference type

在这里插入图片描述

发布了337 篇原创文章 · 获赞 43 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/dghcs18/article/details/103548046