java部分基础总结
新手期一些知识的总结
面向对象:
首先先将面向对象与面向过程区分开:面向过程主要是通过过程,达到某种目的,这种目的的目标就是对象,二面向对象重点则是不再考虑过程,直接面向对象!
对象
概念:一切客观存在的能够区分开的单个物体。(万物皆对象。)
组成:属性、行为
类
概念:若干具有相同特征或者共性的对象的抽象
组成:属性、行为
语法:[修饰符] 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部分基础总结的更多相关文章
- Java以基础类库
Java以基础类库JFC(Java Foundation Class)的形式为程序员提供编程接口API,类库中的类按照用途归属于不同的包中. (一)java.lang包 Java最常用的包都属于该包, ...
- Java SE 基础:注释
Java SE 基础:注释 一.注释定义 用于解释说明程序的文字. 二.注释的作用 1.解释说明程序,提高程序的可读性 2.可以帮助我们调试程序:通过注释代码块,检测错误位置 三.格式 1.单行注释 ...
- Java SE 基础:标识(zhì)符
Java SE 基础:标识(zhì)符 一.标识符定义 标识符,就是给类.接口.方法.变量等起名字时的字符序列 二.组成规则与注意事项 1.组成规则 英文大小写字母 数组 $ 和 _ 2.注意事项 不 ...
- Java SE 基础:常用关键字
Java SE 基础:常用关键字 常用关键字表
- java IO基础操作
java IO基础,通熟易懂,好久没复习java 基础了.这里是传送门... http://www.cnblogs.com/nerxious/archive/2012/12/15/2818848.ht ...
- Java学习总结(二)----Java语言基础
1. Java语言基础 2.1 关键字 定义:被java语言赋予特殊含义的单词 特点:关键字中的字母都为小写 用于定义数据类型的关键字 class,interface,byte,short,i ...
- [转]Java多线程干货系列—(一)Java多线程基础
Java多线程干货系列—(一)Java多线程基础 字数7618 阅读1875 评论21 喜欢86 前言 多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们 ...
- Java 入门基础
第零章 开始学习Java 1.Java基础最重要 Java学习中,Java的基础.Java面向对象是最关键的,而一些像框架技术等都是建立在基础之上东西. 多多处理问题,积累处理问题的能力. Java框 ...
- Java多线程基础:进程和线程之由来
转载: Java多线程基础:进程和线程之由来 在前面,已经介绍了Java的基础知识,现在我们来讨论一点稍微难一点的问题:Java并发编程.当然,Java并发编程涉及到很多方面的内容,不是一朝一夕就能够 ...
- Java 多线程——基础知识
java 多线程 目录: Java 多线程——基础知识 Java 多线程 —— synchronized关键字 java 多线程——一个定时调度的例子 java 多线程——quartz 定时调度的例子 ...
随机推荐
- .net防止刷新重复提交(转)
net 防止重复提交 微软防止重复提交方案,修改版 Code ; i < cookie.Values.Count; i++) log.Info(" ...
- oldboy第一天学习
oldboy第一天学习 一.听Alex Li 吹牛逼! 1.老男孩附加的功能.每节课都有鸡汤.节省时间,投资自己.结识更多的朋友. 2.python的创始人为吉多·范罗苏姆(Guido van Ros ...
- 将Android 工程从Windows导入到Ubuntu 下java类中的中文在ADT中乱码
解决方法: 右键工程-->Properties->Resource->Text file encoding->Other 手动输入GBK ->点击OK (Other 中是 ...
- 单片机设计与KeilC编程总结
1基本原则 质量是关键.没有人会对很差的工作感到满足.当完成高质量的工作时,你会为此而感到骄傲.不管你是否知道,你都会因为你的高质量工作而得到信誉.因此,要想为自己所做的事感到骄傲,就需要建立个 ...
- oschina服务器软件
服务器软件 74Apache模块 54Nginx扩展模块 13Radius相关 94PaaS 系统 29服务发现/注册和协调 17Docker 扩展 7Docker 映像 83应用服务器 189HTT ...
- HDOJ(HDU) 1673 Optimal Parking
Problem Description When shopping on Long Street, Michael usually parks his car at some random locat ...
- 超酷创意HTML5动画演示及代码
HTML5是未来的网页开发神器,今天分享的这些HTML5动画大部分利用了CSS3的动画属性来实现,废话不多说,直接上演示和代码. HTML5/CSS3实现大风车旋转动画 这次我们要来分享一款很酷的HT ...
- MSSQL 标准PROC 写法
MSSQL 标准PROC 写法 ALTER PROC [dbo].[usp_ADM_InsertFlowSortInfo]@FlowSortName NVARCHAR(50),AS/*PAGE: 分类 ...
- arrayPointer
1,分别使用指针加减 int wages[2] = {100000000,20000000}; int *pw = wages or int *pw = &wages[0] 表示指针指向数组的 ...
- 从此走上一条iOS程序猿不归路。。。
新的城市,新的生活!前不久刚刚结束了苦逼的面试找工作之旅,期间也小有收货,如今正处年底工作闲暇之余,将前一阵子陆陆续续的总结整理了一下,本人菜鸟程序猿一只,水平有限,本文总结的知识不算深入,比较浅显, ...