编程语言的发展

  • 机器语言
  • 过程语言
  • 面向对象编程——封装、继承、多态

关键字

extends implements

override overload

super this

static abstract super

package(声明当前类属于哪个包) import(引用某个包里的某个类)

类、对象相关概念

public class HelloWorld { // {}中的是类体
public static String ClassVar; // 类变量/静态变量
public String ObjVar; // 成员变量/实例变量 // 方法声明 {}中是方法体
public HelloWorld() {
} // 构造,不显示实现时,会有默认构造 public static void main(String[] args) { // main方法
String word = "Hello World!"; // 局部变量
String name = "Tom";
PrintWord(word);
PrintWord(name, word); //类方法调用
HelloWorld hw = new HelloWorld(); //声明一个类对象,并分配空间
hw.PrintWord(word, 0); //实例方法调用
} // 类方法
public static void PrintWord(String word) {
System.out.println(word);
} // 方法重载
public static void PrintWord(String name, String word) {
System.out.println(name + " said:" + word);
} // 实例方法
public void PrintWord(String word, int n) {
System.out.println(word + "[" + n + "]");
}
}

接口interface

一个类只能有一个父类,但可以实现多个接口

标记接口:没有任何方法定义的接口

接口与类的区别:

  • 接口不能用于实例化对象。
  • 接口没有构造方法。
  • 接口中所有的方法必须是抽象方法。
  • 接口不能包含成员变量,除了 static 和 final 变量。
  • 接口不是被类继承了,而是要被类实现。
  • 接口支持多重继承。

抽象类和接口的区别

  • 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行。
  • 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的。
  • 接口中不能还有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法。
  • 一个类只能继承一个抽象类,而一个类却可以实现多个接口。

封装性

用private隐藏不必要暴露的逻辑

继承性extends、implements

子类可访问父类的public、protect方法和变量

接口也可以有继承

多态性(要素:继承、重写、父类引用指向子类对象)

父类方法被多个子类重写时,各自产生自己功能的行为

子类对象的引用赋给父类对象称为上转型

可以把实现某一接口的类创建的对象引用赋给接口声明的变量,通过变量对接口方法的调用去调用不同的实现类的方法实现

内部类

在类内定义的类

匿名类

直接new一个类,并在其后{}中实现

异常类

try...catch...finally

Class类【反射】

利用Class类,可以获取类的名字、全部构造、全部变量、全部方法

包装类

byte/short/int/long/float/double/char

Byte/Short/Integer/Long/Float/Double/Charactor

包装类提供了一些常用的方法

【装箱】值类型转换为引用类型(包装类)

【拆箱】引用类型转换为值类型

反编译/文档生成器

javap/javadoc

JAR文件

可以将应用程序/类压缩为JAR文件(类似于dll)

  • 步骤:
  1. 编写清单文件

    Mymoon.mf

    Manifest-Version: 1.0 //有且只有一个空格

    Main-Class: A //此处打包两个类,A为主类;若将多个类打包则为:Class: A B X

    Created-By: 1.4(Tc Company)
  2. 生成JAR文件

    D:\test\jar cfm Tom.jar Mymoon.mf A.Class B.Class
  • 更新、查看JAR

    tf 查看

    xf 解压

    -uf 更新

Java学习笔记【四、类、对象、接口】的更多相关文章

  1. 初探swift语言的学习笔记四(类对象,函数)

    作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/29606137 转载请注明出处 假设认为文章对你有所帮助,请通过留言 ...

  2. Java学习笔记之---类和对象

    Java学习笔记之---类和对象 (一)类 类是一个模板,它描述一类对象的行为和状态  例如:动物类是一个类,动物们都有属性:颜色,动物们都有行为:吃饭 public class Dog { Stri ...

  3. Java学习笔记——File类之文件管理和读写操作、下载图片

    Java学习笔记——File类之文件管理和读写操作.下载图片 File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图 ...

  4. Java学习笔记 04 类和对象

    一.类和对象的概念 类 >>具有相同属性和行为的一类实体 对象 >>实物存在的实体.通常会将对象划分为两个部分,即静态部分和动态部分.静态部分指的是不能动的部分,被称为属性,任 ...

  5. Java学习笔记四---打包成双击可运行的jar文件

    写笔记四前的脑回路是这样的: 前面的学习笔记二,提到3个环境变量,其中java_home好理解,就是jdk安装路径:classpath指向类文件的搜索路径:path指向可执行程序的搜索路径.这里的类文 ...

  6. [core java学习笔记][第六章接口与内部类]

    接口域内部类 接口 描述类具有什么功能,不给出具体实现. 内部类 用于设计协作关系的类集合 代理 实现任意接口的对象. 6.1 接口 接口声明 public interface Comparable ...

  7. java学习笔记3--类与对象的基础

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note3.html,转载请注明源地址. 1.面向对象的程序设计方法概述 面向对象的程序设计 与 ...

  8. Java 学习笔记(8)——匿名对象与内部类

    一般在编写代码时可能会遇到这样的场景--在某些时候,我需要定义并某个类,但是只会使用这一次,或者是某个类对象只会使用一次,为它们专门取名可能会显的很麻烦.为了应对这种情况,Java中允许使用匿名对象和 ...

  9. 0026 Java学习笔记-面向对象-抽象类、接口

    抽象方法与抽象类 抽象方法用abstract修饰,没有方法体部分,连花括号都不能有: 抽象方法和抽象类都用abstract修饰 包含抽象方法的类一定是抽象类:但不包含抽象方法的类也可以是抽象类 不能创 ...

  10. Java学习笔记之——类与对象

    1.参数的传递方式 1)值传递 2)引用传递 2.类和对象: (1)类的定义: public class 类名{ 类型 属性1: 类型 属性2: ……… public 返回值类型 方法名1(形参){ ...

随机推荐

  1. WebSocket 搭建简单聊天网站

    HTML5 WebSocket WebSocket是HTML5开始提供的一种在单个 TCP 连接上进行全双工通讯的协议. 在WebSocket API中,浏览器和服务器只需要做一个握手的动作,然后,浏 ...

  2. vue-cli2.x版本安装vue-cli建项目

    全局安装vue-cli 命令行输入: vue-cli版本在3以下 npm install --global vue-cli 安装vue-cli后,可以查看一下是否安装成功vue --version, ...

  3. ElasticSearch——分词

    前言: 最近在使用elasticSearch中发现有些数据查不出来,于是研究了一下,发现是分词导致的,现梳理并总结一下. ElasticSearch 5.0以后,string类型有重大变更,移除了st ...

  4. RestTemplate连接池(转载)

    出处:http://zhangzhi19861216.cnblogs.com/ spring-boot RestTemplate 连接池 以前我们项目都是基于Apache HttpClient 连接池 ...

  5. 【VS开发】程序员对内存的理解

    程序员对内存的理解 在C和C++语言开发中,指针.内存一直是学习的重点.因为C语言作为一种偏底层的中低级语言,提供了大量的内存直接操作的方法,这一方面使程序的灵活度最大化,同时也为bug埋下很多隐患. ...

  6. 非常好用的vue数字滚动插件vue-countTo

    参考链接:https://blog.csdn.net/gaoxin666/article/details/84635056

  7. 【Python】【demo实验17】【练习实例】【将一个正整数分解质因数】

    题目:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. 我的源代码: #!/usr/bin/python # encoding=utf-8 # -*- coding: UTF-8 ...

  8. dev控件学习笔记之----CxGrid2

    一.cxgrid 表格自适应列宽和增加注脚注和 for i := 0 to ado_lxr_cx.FieldCount - 1 do    begin      //如果是数字,则注脚求合      ...

  9. Spring4学习回顾之路07- 通过工厂方法配置Bean

    一:通过静态工厂配置Bean 建立Student.java package com.lql.srping04; /** * @author: lql * @date: 2019.10.28 * Des ...

  10. PAT B1006 换个格式输出整数 (15)

    AC代码 #include <cstdio> const int max_n = 3; char radix[max_n] = {' ', 'S', 'B'}; int ans[max_n ...