Tips1:eclipse中会经常用到System.out.println方法,可以先输入syso,然后eclipse就会自动联想出这个语句了!!

学习笔记:

*包、权限控制

1、包(package)概念的引入是为了防止类名冲突。package语句要作为java源文件的第一条语句。

2、两个类在同一个包中,可以相互调用;两个类在不同的包中,若想引用则必须通过import语句导入,格式为:import 包名.子包名.类名。

  3、如果在程序中同时导入了两个包的同类名,则在使用时必须明确的写出完整的“包.类名”,如:access.a.Demo demo1=new access.a.Demo()

  4、private类型的属性和方法,只能在本类中使用;protected类型的属性和方法,只能在本包中使用;public类型的属性和方法在任何地方均可使用。

*继承

  1、继承修饰符与访问限制关系表

  如,protected修饰的成员可以被子类、同一个包或者类内部访问。

  2、父类private类型的属性和方法不能被子类继承,父类的构造方法也不能被子类继承。

  3、子类对象实例化时,先调用父类的构造方法,再调用子类本身的构造方法。若父类的构造方法带参数,那么子类在构造方法中要显示地调用super方法(写在首行)。

   4、Java中只允许单继承,即一个类只能继承一个父类。

  5、方法重写(Override):子类中定义了父类中同名的方法。重写的方法必须和被重写的方法具有相同的方法名、参数列表和返回类型。

  6、子类重写的方法不能拥有比父类方法更加严格的访问控制权限。静态方法(static修饰)不能被重写,被private修饰的方法不能被重写,如果子类重写编译器并不会报错,但是如果发生向上转型仍然调用父类方法。

  7、初始化顺序:父类静态成员>子类静态成员>父类中的成员(按声明顺序)>父类的构造方法>子类中的成员(按声明顺序)>子类的构造方法。

*多态性

  1、方法重载(Overloading):在同一个类中定了多个同名的方法,但是方法的参数个数、参数类型和返回值类型可能不同,调用时通过传参的类型和个数来决定具体使用哪个方法。

  2、重载方法的方法名要相同,参数类型或参数个数不同,返回值类型可以相同也可以不相同,无法以返回型别作为重载函数的区分标准。

  3、向上转型upcasting:将子类对象赋值给父类对象,向上转型损失了子类新扩展的属性和方法,只剩下父类中声明过的属性和方法;如果对象发生了向上转型关系后,那么调用的方法一定是被子类覆盖掉过的方法。

  4、向下转型downward cast:将父类对象赋值给子类对象。向下转型的前提条件是:必须是曾经做过向上转型的对象才能再向下转型。进行向下转型时必须要明确地指出要转型的子类类型:子类 子类对象=(子类)父类对象。

  5、instanceof操作符:判断一个对象到底是哪个类的实例。用法:对象 instanceof 类,结果返回boolean类型。子类对象既是子类的一个实例又是父类的一个实例。

*Object类和equals方法

  1、Java所有的类都有一个公共的父类Object,Object类中包含下面几个主要方法:

    public String toString() //对象输出时调用,默认输出:类名@hashcode,可以重载此方法

    public boolean equals(Object obj) //对象比较

    public int hashCode() //获取对象的hash码

  2、equals方法默认比较的是对象在内存中存放的地址,但如果是自定义的类,可根据需要重写equals方法;  

     ==方法对于基本的数据类型,它比较的是值;而对于复合数据类型,它比较的是对象的地址。

  3、特别指出的是,利用equals比较八大包装类对象(Byte, Boolean, Short, Charecter, Integer, Long, Float, Double)和String类(因为该类已重写了equals和hashcode方法)对象时,默认比较的是值,在比较其它自定义对象时都是比较的引用地址。

*Final关键字

  1、final修饰的变量为常量,值不能被修改;final修饰的方法不能被子类重写;final修饰的类不能有子类,即不能被继承(但是该类中的属性和方法仍可以改变)。

  2、常量在声明时就需要为其赋值,如果未赋值就必须在每个构造方法中为其赋值。

  3、final修饰对象时,只是说明该对象的引用是常量,即不能再指向别的对象,但是该对象中的属性值仍然可以被修改。

  4、final static修饰的变量为全局常量,全局常量的所有单词都应该大写。

*Random包

  1、需要导入:java.util.Random包

  2、Random()有两种构造方法:

  Random():创建一个新的随机数生成器。

  Random(long seed):使用单个 long 种子创建一个新的随机数生成器。

3、你在创建一个Random对象的时候可以给定任意一个合法的种子数,种子数只是随机算法的起源数字,和生成的随机数的区间没有任何关系。但是种子相同的两个Random对象生成的随机数序列(不指定生成数范围)是一样的。

   4、在没带参数构造函数生成的Random对象的种子缺省是当前系统时间的毫秒数。

   5、int nextInt():返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。

    int nextInt(int n):返回一个伪随机数,它是取自此随机数生成器序列的、在[0,n)之间均匀分布的int值。

*容器

  1、HashMap的put方法返回值,如果放入的值存在则返回对应的值,否则返回null

Java学习笔记——基础篇的更多相关文章

  1. java学习笔记-基础篇

    Java基础篇 1—12 常识 13 this关键字 14参数传递 16 继承 17 访问权限 28—31异常 1—12 常识 1.文件夹以列表展示,显示扩展名,在地址栏显示全路径 2.javac编译 ...

  2. java学习笔记(基础篇)—面向对象编程之封装、继承、多态

    一. OOP中的基本概念 Java的编程语言是面向对象的,采用这种语言进行编程称为面向对象编程(Object-Oriented Programming, OOP), 它允许设计者将面向对象设计实现为一 ...

  3. java学习笔记(基础篇)—变量与表达式

    一:局部变量和实例变量 定义变量是指设定变量的数据类型和变量的名字,Java语言要求变量遵循先定义,再初始化,然后使用的规则. 作用域:指它的存在范围,只有在这个范围内,程序代码才能访问它. 变量的生 ...

  4. java学习笔记(基础篇)--java关键字与数据类型

    java关键字与数据类型 Java语言的关键字是程序代码中的特殊字符.包括: . 类和接口的声明--class, extends, implements, interface . 包引入和包声明--i ...

  5. java学习笔记(基础篇)—数组模拟实现栈

    栈的概念 先进后出策略(LIFO) 是一种基本数据结构 栈的分类有两种:1.静态栈(数组实现) 2.动态栈(链表实现) 栈的模型图如下: 需求分析 在编写代码之前,我习惯先对要实现的程序进行需求分析, ...

  6. java学习笔记(基础篇)—java数组

    一:什么是数组,什么时候使用数组? 数组是用来保存一组数据类型相同的元素的有序集合,数组中的每个数据称为元素.有序集合可以按照顺序或者下标取数组中的元素. 在Java中,数组也是Java对象.数组中的 ...

  7. java学习笔记(基础篇)—抽象与接口的区别

    抽象与接口的区别 一.抽象(abstract) 1. 抽象方法 1) 作用:定义规范 2) 抽象方法用来描述具有什么功能,但不提供实现. 3) 如果类中一个方法没有实现就要定义一个抽象方法. 2. 抽 ...

  8. Python学习笔记基础篇——总览

    Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列 ...

  9. Python学习笔记——基础篇【第一周】——变量与赋值、用户交互、条件判断、循环控制、数据类型、文本操作

    目录 Python第一周笔记 1.学习Python目的 2.Python简史介绍 3.Python3特性 4.Hello World程序 5.变量与赋值 6.用户交互 7.条件判断与缩进 8.循环控制 ...

随机推荐

  1. for迭代序列的三种方式

    while循环是条件性的,for循环是迭代性的. for循环会访问所有迭代对象中的所有元素,并在所有条目都结束后结束循环. for循环迭代序列有三种基本的方式,分别是通过序列项迭代.通过索引迭代.通过 ...

  2. yii根据id查询一条数据

    model层 public function selectone($ag_id=''){ return $this->findBySql("SELECT * FROM agency w ...

  3. 数据结构&算法(二)_算法基础之前传(递归、时间复杂度、空间复杂度、二分查找)

    什么是算法: 间而言之算法(Algorithm):一个计算过程,解决问题的方法 递归的两个特点: 调用自身 结束条件 递归示例: def func(x): : print("我的小鲤鱼&qu ...

  4. appcmd应用

    appcmd资料: http://www.jb51.net/article/36024.htm 官方文档:https://docs.microsoft.com/zh-cn/iis/get-starte ...

  5. linux sed批量替换多个文件内容

    sed -i "s/lgside/main/g" `grep -rl lgside /home/zn/work/project-template` 注意标点符号:`

  6. js防抖

    那我们设置个 options 作为第三个参数,然后根据传的值判断到底哪种效果,我们约定: leading:false 表示禁用第一次执行trailing: false 表示禁用停止触发的回调 我们来改 ...

  7. 使用 getopt 处理命令行长参数

    getopt命令并不是bash的内建命令,它是由util-linux包提供的外部命令. getopt 与 getopts 的区别 getopts 是 shell 内建命令, getopt 是一个独立外 ...

  8. python 利用PIL库进行更改图片大小的操作

    python 是可以利用PIL库进行更改图片大小的操作的,当然一般情况下是不需要的,但是在一些特殊的利用场合,是需要改变图片的灰度或是大小等的操作的,其实用python更改图片的大小还是蛮简单的,只需 ...

  9. windows vs 编译tesseract-ocr

    第一把所有相关的代码都下载,github最方便 https://github.com/tesseract-ocr/tesseract 要点1.cppan c++的中文管理包,很方便,需要翻-墙,安装包 ...

  10. 20145222黄亚奇《网络对抗》- shellcode注入&Return-to-libc攻击深入

    20145222黄亚奇<网络对抗>- shellcode注入&Return-to-libc攻击深入 shellcode注入实践过程