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. iOS数据存储到本地的几种方法

    A,归档解档(多针对于模型或者数组,利用MJExtension) 1,先在model里的.m文件写上MJCodingImplementation 2,再进行模型归档: #define APP_DOCU ...

  2. springboot的Scheduled定时器不工作

    问题情况 使用springboot,使用注解方式启动定时器进行业务调度. 在入口类中加了注解如下: package org.test.xyz; @SpringBootApplication @Enab ...

  3. Calendar的那些神坑

    参考我的博客:http://www.isedwardtang.com/2017/08/31/java-calendar-bug/

  4. 针对Oracle表 列字段的增加、删除、修改以及重命名操作sql

    增加字段语法:alter table tablename add (column datatype [default value][null/not null],….); 说明:alter table ...

  5. mysql的常用语句

    Mysql的常用语句 -- 创建表 create table tableName( id int primary key, name varchar(20) ) -- 查询 select * from ...

  6. 通过自动回复机器人学Mybatis:代码重构(分层)

    imooc视频学习笔记 ----> URL:http://www.imooc.com/learn/154 ListServlet.java package com.imooc.servlet; ...

  7. CSS 初级攻略

    内容来自html dog. css的格式为 ‘property: value’ 给html插入css样式的方式有三种:内联.内部css.外部css文件,如下所示: <p style=" ...

  8. jQuery个人名片焦点图

    在线演示 本地下载

  9. APPIUM API整理(python)---元素查找

    最近在学习自动化框架appium,网上找一些API相关资料整理了一下 1.find_element_by_id find_element_by_id(self, id_): Finds element ...

  10. LAMP脚本

    A goal is a dream with a deadline. Much effort, much prosperity. 环境:CentOS release 6.5  2.6.32-431.e ...