面向对象部分

首先要了解面向对象的思想,与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. 重载与重写,不需要overrider\overload关键字

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基础知识学习(三)的更多相关文章

  1. Java基础知识学习(九)

    GUI开发 先前用Java编写GUI程序,是使用抽象窗口工具包AWT(Abstract Window Toolkit).现在多用Swing.Swing可以看作是AWT的改良版,而不是代替AWT,是对A ...

  2. java基础知识学习笔记

    本文知识点以js为参照.对比分析得出笔记.JavaScript之所以叫JavaScript是打算借助java推广自己.虽然都是开发语言,但JavaScript一开始主要运行在 客户端,而java主要运 ...

  3. Java基础知识学习(一)

    部门接了新项目,后台使用Java框架play framework,前端是html,前后台通过rest交互,能够支持多端的互联网架构. 因为之前没有Java基础,前端使用的也很少,决定深入学习一下Jav ...

  4. java 基础知识(三)

    Arraylist与Vector的区别 清浅池塘 程序员,专栏:Java那些事儿唯一作者,咨询前请先点详细资料   162 人赞同了该文章 这几天工作有点忙,有很多代码需要写,更新文章有点慢,说声抱歉 ...

  5. java基础知识学习 内存相关

    Java 内存分配策略 静态存储区(方法区):主要存放静态数据.全局 static 数据和常量.这块内存在程序编译时就已经分配好,并且在程序整个运行期间都存在. 栈区 :当方法被执行时,方法体内的局部 ...

  6. Java基础知识(三)

    一.hashCode 与 equals (重要) 面试官可能会问你:"你重写过 hashcode 和 equals 么,为什么重写equals时必须重写hashCode方法?" 1 ...

  7. Java基础知识学习(七)

    线程(续) 线程同步 当两个或两个以上的线程需要共享资源,它们需要某种方法来确定资源在某一刻仅被一个线程占用.达到此目的的过程叫做同步(synchronization) 可以用两种方法同步化代码.两者 ...

  8. Java基础知识学习(二)

    Java语法基础 数据类型.类型转换.运算符.逻辑运算符.参考C#,基本一致 输入输出 输出 System.out.print("abc"); System.out.printf( ...

  9. Java基础知识学习笔记(一)

    理解面向对象: Java纯粹的面向对象的程序设计语言,主要表现为Java完全支持面向对象的三个基本特征:继承.封装.多态. Java程序的最小单位是类,类代表客观世界中具有某种特征的一类事物,这些类可 ...

随机推荐

  1. WinPhone学习笔记(五)——LongListSelector

    LongListSelector也是WinPhone的特色控件之一,最初不了解这个控件叫啥名,知道它会在"人脉"里面出现,在应用程序列表也是这个LongListSelector(如 ...

  2. jQuery漂亮图标的垂直导航菜单

    效果展示 http://hovertree.com/texiao/nav/3/ jQuery漂亮图标的垂直导航菜单 是一款当鼠标滑过菜单项时,会有一个背景遮罩层跟着鼠标移动,效果非常炫酷,图标还是矢量 ...

  3. Linux下快速设定ip bond

    在计算机网路普及的初期,很多OS系统都使用的为单网卡方式,即一个网卡使用一个IP地址.随着网络要求的不断提高,我们可以对多个网卡进行绑定聚合当一个逻辑网络接口来使用,从而大幅提升服务器的网络吞吐(I/ ...

  4. js动态显示表格的汇总信息和详细信息

    我在做数据结果展示的时候,想要实现一个如下的功能:    用户可以选择一个时间段,默认显示这个时间段的汇总数据,当鼠标点击这个时间段的时候,将显示每个时间点的详细数据,再次点击的时候,详细数据收起,只 ...

  5. "Hello World!" for the NetBeans IDE

    "Hello World!" for the NetBeans IDE It's time to write your first application! These detai ...

  6. 第三讲:WCF介绍(3)

    代码 https://yunpan.cn/cPns5DkGnRGNs   密码:3913   前面我们通过一个小的例子,大概了解的WCF. 这里我们补充下  EndPoint 配置  A,B,C  中 ...

  7. SQL语句操作数据-------开启旅程路线喽!

    岁月,是一首诗,一首蕴含丰富哲理的诗,岁月是一峰骆驼,驮着无数人的梦想. 一.SQL的简介 SQL的全称是“结构化查询语言”(Structure Query Language),SQL语言是针对数据库 ...

  8. ServletContext与网站计数器

    什么是ServletContext? ServletContext是服务器的一个公用的空间,是不同的浏览器共享的一个数据. 由图可以看出ServletContext和Cookie与session之间的 ...

  9. 【转】UTF-8汉字正则表达式

    原文链接:http://blog.csdn.net/wide288/article/details/30066639 $str = "编程";// if(!preg_match(& ...

  10. 【转】Linux重定向操作符

    Linux重定向操作符 功能描述 > 将命令输出写入文件或设备,而不是命令提示符或句柄,清空原有文件然后写入 < 从文件而不是从键盘或句柄读入命令输入 >> 将命令输出添加到文 ...