zoukankan      html  css  js  c++  java
  • Java基础知识学习(三)

    面向对象部分

    首先要了解面向对象的思想,与C#一致,都是面向对象的语言

    访问修饰符

    public 共有的,对所有类可见。
    protected 受保护的,对同一包内的类和所有子类可见。
    private 私有的,在同一类内可见。
    默认的 在同一包内可见。默认不使用任何修饰符

    子类继承使用"extend",而不是C#中的 ":"

    class Dog

    class Teddy extends Dog

    子类方法的访问范围只能比父类方法的访问范围大

    变量的作用域分为四个级别:

    类级(C#中的静态变量,static标识)、对象实例级(类属性、字段)、方法级(方法中定义的变量)、块级(代码块中定义的变量)

    Java特性

    跨平台,通过JVM实现,编写的Java源码,编译后会生成一种 .class 文件,称为字节码文件。Java虚拟机就是负责将字节码文件翻译成特定平台下的机器码然后运行。

    编译的结果不是生成机器码,而是生成字节码,字节码不能直接运行,必须通过JVM翻译成机器码才能运行。不同平台下编译生成的字节码是一样的,但是由JVM翻译成的机器码却不一样。

    JVM是用C/C++开发的,是编译后的机器码,不能跨平台,不同平台下需要安装不同版本的JVM。

    Java包

    在Java中,为了组织代码的方便,可以将功能相似的类放到一个文件夹内,这个文件夹,就叫做包。

    包不但可以包含类,还可以包含接口和其他的包。

    代码要引用其他包总的类,需要使用import关键字导入其他包的类

    当在一个源文件中定义多个类,并且还有import语句和package语句时,要特别注意这些规则:

    • 一个源文件中只能有一个public类。
    • 一个源文件可以有多个非public类。
    • 源文件的名称应该和public类的类名保持一致。例如:源文件中public类的类名是Employee,那么源文件应该命名为Employee.java。
    • 如果一个类定义在某个包中,那么package语句应该在源文件的首行。
    • 如果源文件包含import语句,那么应该放在package语句和类定义之间。如果没有package语句,那么import语句应该在源文件中最前面。
    • import语句和package语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明。
    • 类有若干种访问级别,并且类也分不同的类型:抽象类和final类等。
    • 除了上面提到的几种类型,Java还有一些特殊的类,如内部类、匿名类。 

    继承与多态   http://www.weixueyuan.net/java/rumen_5/

     1. 继承使用 extends 关键字。

     2. super 关键字与this类似,this 用来表示当前类的实例,super 用来表示父类。类似C#中的base

     3. 要显示调用父类的显示构造函数

     4. 重载与重写,不需要overrideroverload关键字

     5. 父类的变量可以引用父类的实例,也可以引用子类的实例。

    Animal obj = new Animal();
    obj = new Cat();
    obj.cry();
    

     6. 动态绑定

      需要了解JVM调用方法机制 http://www.weixueyuan.net/view/6000.html

       7. instanceof,判断一个变量所实际引用的对象的类型,做类型转换时需要进行判断

       8. final

      • final 修饰的类不能被继承。
      • final 修饰的方法不能被子类重写。
      • final 修饰的变量(成员变量或局部变量)即成为常量,只能赋值一次。
      • final 修饰的成员变量必须在声明的同时赋值,如果在声明的时候没有赋值,那么只有 一次赋值的机会,而且只能在构造方法中显式赋值,然后才能使用。
      • final 修饰的局部变量可以只声明不赋值,然后再进行一次性的赋值。

        9. Object 类位于 java.lang 包中,是所有 Java 类的祖先,Java 中的每个类都由它扩展而来。

       三个常用方法:equals()  hashCode()  toString()

    主要介绍一些面向对象相关的基础知识

  • 相关阅读:
    线程和进程
    Java多线程实现(四种方法)
    Java中的锁
    synchronized和java.util.concurrent.locks.Lock
    Lock的实现类ReentrantLock&Condition类的await/signal/signalAll(生产者消费者场景)
    synchronized&Object类的wait/notify/notifyAll(生产者消费者场景)
    SQL语句优化
    面试
    数据库三大范式
    设计模式之JDK动态代理源码分析
  • 原文地址:https://www.cnblogs.com/alex09/p/4881806.html
Copyright © 2011-2022 走看看