新手期一些知识的总结
面向对象:
首先先将面向对象与面向过程区分开:面向过程主要是通过过程,达到某种目的,这种目的的目标就是对象,二面向对象重点则是不再考虑过程,直接面向对象!
对象
概念:一切客观存在的能够区分开的单个物体。(万物皆对象。)
组成:属性、行为

概念:若干具有相同特征或者共性的对象的抽象
组成:属性、行为
语法:[修饰符] class 类名{ }(修饰符为public时类名必须与源文件名保持一致(只能用public或者缺省))
结构:
1.成员变量----属性----字段 [修饰符] 数据类型 变量名 [=初始值]
2.构造器----构造方法----构造函数(是特殊的成员方法) [修饰符] 类名([数据类型 参数名]){ }
构造器名必须与类名保持一致,无返回类型(包括void),任何类都含有构造器。如果没有显式的构造器,那么系统会为该类提供一个默认的无参构造器,如果有显式的那么系统不再提供。
构造器作用:1.实例化类的对象2.初始化成员变量。
3.成员方法----行为----函数 [修饰符] 返回值类型 方法名([数据类型 参数名]){ }
4.代码块 { }或者static{ }(二者区别:前者必须使用一个对象(new 构造器名()),后者无需)
使用:
1.类变量的声明:类名 对象名;
2.类对象的创建:对象名=new 构造器名();
3.类属性的赋值:对象名.属性名=数据(也可叫属性值)(数据类型与对象名类型保持一致)
4.类属性和方法的调用:System.out.println(对象名.属性名);、对象名.方法名([数据类型 参数]);
注:1.自定义的类可以作为引用数据类型声明变量!(参照类的使用)2.参数:特殊的局部变量,通过实参传递数据给形参。
重载(Overloading)
概念:在同一类中,定义了多个方法名相同,参数不同的方法。(参数的不同:参数的类型、数量、顺序不同)
使用:方法的重载、构造器的重载
this关键字
概念:每一个类都隐含有一个当前类的对象
使用:1.this.成员(成员变量和成员方法)2.在构造器内的第一行语句可以调用该类内其他重载的构造器来完成自己的初始化:this([数据,数据,……]);
类成员与实例成员
概念以及区别:
1.有static修饰的是类成员,没有static修饰的是实例成员。
2.类成员是一个类内所有对象共有的,实例成员是一个类内一个对象独有的
3.类成员能直接访问所有成员(无论是否是类成员),实例成员只能够直接访问实例成员,如果要访问类成员必须先创建一个对象。
4.类成员的调用可以先创建一个对象,也可以直接用 类名.成员 直接调用,实例成员必须先创建一个对象。
5.类成员不可以使用this关键字。(因为没有this的实例可以使用)

包的声明:1.在源文件的第一行语句 package 包名.包名 2.包名一般是域名的倒置。
包的导入:import 包名.包名.类名 在声明的包下面,声明的类上面。
修饰符
访问修饰符:
1.public:在同包下与非同包下都可以访问。
2.protected:在同包下可以访问,在非同包下的子类可以访问。
3.缺省:在同包下可以访问,非同包下不可以访问。
4.private:只有在类内能够访问。
非访问修饰符:
1.static 静态
2.final 修饰类:该类不能够被继承 修饰成员变量:为常量不可修改 修饰方法:不能够被重写 修饰参数:在方法体中不能够被赋值。
3.abstract 抽象
返回值类型:
void还有八大数据类型:byte short int long float double char boolean
return:在有返回值的方法体中,最后一行返回一条数据,结束方法体,在void方法体中结束方法体。
对象的四大特点
封装、继承、多态、抽象
封装
概念:把成员(属性和方法)私有化(private),只为可信任的类提供访问。()
使用:提供public的get和set方法进行访问。
继承
概念:在现有的类上派生出一个新的类。把类具有的相同代码提取出来,成为父类,其他类继承,减少代码的冗余。
使用:[修饰符] class 子类名 extends 父类名 { }
注:子类继承父类后,会拥有父类的非私有的属性的方法。 子类创造对象时本质上是创造了两个对象,一个子类对象(子构造器),一个隐含的父对象(父构造器 super)
(子类无法继承父类的构造器)
重写(Override)
概念:在继承关系的前提下,父类方法无法满足子类方法的需求,这样子类方法就会重新改写(重写或者覆写)
使用:1.继承 2.子类的方法与父类方法的返回值类型、方法名、参数必须一致,但是方法体内必须不同。3.修饰符可以不同,但是子类修饰符访问范围要大于或等于父类
super关键字
概念:子类都隐含有一个父类的对象。
使用:1.super.成员 2.在子类构造器内的第一行一句(super([参数列表]);)默认的调用父类的无参的构造器。
多态
概念:一种事物的多种形态。
使用:1.继承 2.重写 3.向上转型(父类名 父类对象名=new 子类构造器名();)
作用:1.提高代码的可重用性 2.降低程序间的耦合度。
抽象类
关键字:abstract
抽象方法(不完整的方法):[修饰符] abstract 返回值类型 方法名([数据类型 参数名]);
抽象类
概念:有抽象方法的类就是抽象类(不完整的方法)。
内容:抽象类有构造器,也可以声明变量,但是却不可以实例化,因为它拥有不完整的方法,它是不完整的类。抽象类中可以有完整的方法,但是有抽象方法的类一定是抽象类。
使用:抽象类可以被继承,通过子类来完整方法,进而达到抽象类的实例化。(用到多态向上提型)
接口
接口类的声明:[修饰符] interface 接口名(与源文件名保持一致){ }
概念:更加抽象的抽象类(更加不完整的不完整类,本质也是类,但是它没有构造器)
结构:1.常量 [修饰符] [final] 数据类型 变量;2.抽象方法 [修饰符] abstract 返回值类型 方法名([数据类型 参数名]);(1.8版本以上的有改动,比如添加不同修饰符可以有完整的方法。目前忽略)
使用:1.类实现接口:[修饰符]class 子类名 extends 父类名 implements 接口名,接口名,……{ }(class实现接口时extends与implemnts顺序不可改变)
2.接口继承接口 [修饰符] interface 接口名 extends 接口名,接口名,……{ }
作用:1.提高了代码的重用性 2.减少了程序间的耦合度 3.实现了多继承 4.提高了程序的可拓展性
instanceof运算符
概念:判断一个对象是不是某个类的实例。
使用:if (对象名 instanceof 类名) { }等等
内部类
成员内部类:在一个类中,方法体外再定义一个类。
1.外部类访问内部类:需要先创建一个对象,然后对象名.内部类成员。
2.内部类访问外部类:可以直接访问外部类成员:外部类名.this.外部类成员
3.外部其他类访问内部类:外部类.内部类 内部类对象名=new 外部类构造器().new 内部类构造器();内部类对象名.内部类成员;
局部内部类:在一个类的方法体中再定义一个类。
1.外部类访问内部类:需要先在外部类方法体中,声明内部类后,创建一个对象,然后调用成员。
2.内部类访问外部类:可以直接访问外部类成员,包括private类。不能访问外部类方法体中的变量。外部类名.this.外部类成员
3.外部其他类访问内部类:无法直接访问,可以通过外部类来获得其内容。
静态内部类:在一个类中,方法体外再定义一个类,这个类用static修饰。
1.外部类访问内部类:有static修饰的内部类成员:内部类名.内部类成员 无static修饰:创建内部类对象,然后访问。
2.内部类访问外部类:外部类成员如果没有static修饰,那么就需要先创建一个外部类对象,如果有static修饰那么久可以直接外部类名.外部类成员
3.外部其他类访问内部类:无static修饰内部类成员:1.外部类.内部类 内部类对象名 =new 外部类.内部类构造器名();内部类对象名.内部类成员;有static修饰的内部类成员:2.外部类.内部类.内部类成员;
匿名内部类:本质上是内部类的缩写。
1.外部类访问内部类:new 父类或者接口(){ 重写方法体}.方法名;
2.内部类访问外部类:可以直接访问外部类成员,包括private类。不能访问外部类方法体中的变量
3.外部其他类访问内部类:无法直接访问。

java部分基础总结的更多相关文章

  1. Java以基础类库

    Java以基础类库JFC(Java Foundation Class)的形式为程序员提供编程接口API,类库中的类按照用途归属于不同的包中. (一)java.lang包 Java最常用的包都属于该包, ...

  2. Java SE 基础:注释

    Java SE 基础:注释 一.注释定义 用于解释说明程序的文字. 二.注释的作用 1.解释说明程序,提高程序的可读性 2.可以帮助我们调试程序:通过注释代码块,检测错误位置 三.格式 1.单行注释 ...

  3. Java SE 基础:标识(zhì)符

    Java SE 基础:标识(zhì)符 一.标识符定义 标识符,就是给类.接口.方法.变量等起名字时的字符序列 二.组成规则与注意事项 1.组成规则 英文大小写字母 数组 $ 和 _ 2.注意事项 不 ...

  4. Java SE 基础:常用关键字

    Java SE 基础:常用关键字 常用关键字表

  5. java IO基础操作

    java IO基础,通熟易懂,好久没复习java 基础了.这里是传送门... http://www.cnblogs.com/nerxious/archive/2012/12/15/2818848.ht ...

  6. Java学习总结(二)----Java语言基础

    1.     Java语言基础 2.1 关键字 定义:被java语言赋予特殊含义的单词 特点:关键字中的字母都为小写 用于定义数据类型的关键字 class,interface,byte,short,i ...

  7. [转]Java多线程干货系列—(一)Java多线程基础

    Java多线程干货系列—(一)Java多线程基础 字数7618 阅读1875 评论21 喜欢86 前言 多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们 ...

  8. Java 入门基础

    第零章 开始学习Java 1.Java基础最重要 Java学习中,Java的基础.Java面向对象是最关键的,而一些像框架技术等都是建立在基础之上东西. 多多处理问题,积累处理问题的能力. Java框 ...

  9. Java多线程基础:进程和线程之由来

    转载: Java多线程基础:进程和线程之由来 在前面,已经介绍了Java的基础知识,现在我们来讨论一点稍微难一点的问题:Java并发编程.当然,Java并发编程涉及到很多方面的内容,不是一朝一夕就能够 ...

  10. Java 多线程——基础知识

    java 多线程 目录: Java 多线程——基础知识 Java 多线程 —— synchronized关键字 java 多线程——一个定时调度的例子 java 多线程——quartz 定时调度的例子 ...

随机推荐

  1. 使用node-webkit开发Clover桌面客户端的一些记录(一)

    首先说一说Clover. 这是一个OA产品,是我们公司组建我们技术部以来最最重要的一项工作 -- 开发企业内部使用的管理系统."Clover"这个名字是我们老大起的,拆开看是&qu ...

  2. PHP无限级分类生成树实例代码

    分享一例php无限级分类生成树的代码,学习下php无限级分类的实现方法,有需要的朋友参考下.   一段非常精简的PHP无限极分类生成树方法,巧在引用.   例子,php实现无限级分类.   代码示例: ...

  3. Facebook 正式开源其大数据查询引擎 Presto

    Facebook 正式宣布开源 Presto —— 数据查询引擎,可对250PB以上的数据进行快速地交互式分析.该项目始于 2012 年秋季开始开发,目前该项目已经在超过 1000 名 Faceboo ...

  4. LPC1758串口ISP下载程序

    最近手上拿到一块人家公司做的3D打印机的板子,用的核心芯片是LPC1758,板上引出了ISP下载接口.那接口共4个引出脚,如下图所示:   其中ME_EN引脚又连接到了芯片的P2[10]引脚,那个引脚 ...

  5. CentOS 6.5 + Nginx 1.8.0 + PHP 5.6(with PHP-FPM) 负载均衡源码安装 之 (四)问题汇总

    关于外网无法访问虚拟机centos的问题 此一般由于centos默认防火墙配置,导致外部不允许访问80端口(或其他如9000端口).解决方法如下: 1.加入80端口的防火墙规则 /sbin/iptab ...

  6. android中使用PopupWindow实现弹出窗口菜单

    结合上篇android中使用ViewPager实现图片拖动,我们实现了点击“帮助”按钮的功能,这一篇则是接着上一篇,让我们一起来完成“我的”按钮的功能,这一功能,则是使用PopupWindow来实现弹 ...

  7. 有意思的数学题:Trapping Rain Water

    LeetCode传送门 https://leetcode.com/problems/trapping-rain-water/ 目标:找出积木能容纳的水的“面积”,如图中黑色部分是积木,蓝色为可容纳水的 ...

  8. 【转】Java 集合系列16之 HashSet详细介绍(源码解析)和使用示例--不错

    原文网址:http://www.cnblogs.com/skywang12345/p/3311252.html 概要 这一章,我们对HashSet进行学习.我们先对HashSet有个整体认识,然后再学 ...

  9. 【转】ArrayList和LinkedList的几种循环遍历方式及性能对比分析

    原文网址:http://www.trinea.cn/android/arraylist-linkedlist-loop-performance/ 主要介绍ArrayList和LinkedList这两种 ...

  10. css实现居中的各种方法

    css垂直居中有很多种方法,可以参考下这个网站