Core Java(六)
面向对象语言特性 (一)
(一) static
作用于 变量,方法,代码块
静态变量:被类的所有对象共享 在类加载时被加载 优先于对象
Student.country = "中国";
静态方法:类名.方法名();
静态方法中只能调用静态成员
代码块:
局部:限制局部变量生命周期
构造:初始化对象的操作
静态:类的初始化操作,在首次类加载时调用
1.加静态不影响权限修饰
2.this,super与static不能同时使用
(二)静态导入
import sattic xxxxx.xxx(导入静态成员)
(三)final
修饰类,变量,方法
内部类
final修饰变量---常量 public static final int a =10;
final修饰全局变量,只能在定义的同时赋值,或者在构造器中赋值
修饰局部变量,可以先定义在赋值
class X{
public final int A;
public X(){
A = 20;
}
public void fun(){
final int b;
b = 20;
}
}
final修饰的类不能被继承
且 成员方法默认final修饰
final修饰的方法不能被重写
(四)权限修饰符
(五)abstract
修饰类和成员方法
父类只知道子类有某种行为但不清楚子类对于该行为的实现细节-->抽象方法
public abstract void eat();
含抽象方法的类需定义为抽象类 abstract class Animal{}
除非子类为抽象类,否则当父类有抽象方法时,子类强制要求重写
抽象类不能被实例化(不能被new),但有构造器,提供给子类对象实例化
抽象方法不能用private,final,static修饰
(六)接口 interface
供别人调用的方法或者函数 解决多重继承问题
implements 可以多实现
可包含变量和方法,但方法必须为抽象方法(默认public abstract),但变量默认public static final,可以与外界直接访问,为静态常量,值不可修改
接口中没有构造方法,不能被实例化
接口与接口之间为继承关系,且接口之间可以实现多继承
(七)内部类
将一个类定义在另一个类或者一个方法里面
成员内部类,局部内部类,匿名内部类,静态内部类
1.成员内部类
---相当于类的成员
可以无条件访问外部类成员属性和成员方法(包括private,静态成员)
外部类调用内部类方法:Inner innner =new Inner();
inner.fun();
主方法中调用内部类方法:Outter outter = new Outter();
Outter.Inner inner = outter.new Inner();
或:Outter.Inner i = new Outter().new Inner();
成员内部类只能定义实例成员,不能定义静态成员
2.局部内部类
--相当于一个方法中的局部变量
不能有public private protected 及static修饰
可以访问外部类的普通成员变量和静态成员变量以及普通成员方法和静态方法,也可以访问该内部类所在方法局部变量(但必须用final修饰(默认加))
不能包含静态成员
3.匿名内部类
继承了类或实现了接口的子类匿名对象
可以写成成员变量的形式,也可以写在方法中,一般写在方法中较多
可以访问外部类的普通成员变量和静态成员变量以及普通成员方法和静态方法,也可以访问该内部类所在方法局部变量(但必须用final修饰)
用于接口回调
4.静态内部类
定义在类内部,static修饰,不依赖外部类,只能使用外部类中静态...
(八)==与equals
==:作用于基本数据类型,比较其储存的值是否相等
作用于引用类型变量 ,比较所指向的对象的地址
equals():不能作用于基本数据类型的变量,只能是一个对象来调用,参数也要传一个对象,
如果未对equals方法重写,则比较的是引用类型变量的变量所指向的对象的地址值
诸如String Date等类对equal方法进行了重写的话,比较的是所指向内容的对象
(九)toString
Object类中方法,把引用里显示在堆区对象的地址值显示出来,常重写方法
(十)getClass
final修饰,不能被子类重写,,可以返回某一引用在运行时指向对象类型 、
获取某一对象的字节码文件
(十一)String类
final修饰,不能被继承
通过char数组保存字符串
字符串 常量,他们的值在创建后不能更改
字符串缓冲区支持可变的字符串
StringBuffer 线程安全的可变字符序列 synchronized
主要操作:append insert
StringBuilder 可变字符序列
(十二)装箱与拆箱
基本数据类型---包装类
int--Integer Integer integer = 10; 自动装箱(-128-127)
int a = integer; 自动拆箱
float
boolean
double
char--Character
Integer integer = 10; 自动装箱 (-128――127)
int a = integer ; 自动拆箱
Core Java(六)的更多相关文章
- applet示例 WelcomeApplet.java <Core Java>
import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.Font; import java.awt.Grap ...
- Core Java Volume I — 1.2. The Java "White Paper" Buzzwords
1.2. The Java "White Paper" BuzzwordsThe authors of Java have written an influential White ...
- Core Java Volume I — 4.7. Packages
4.7. PackagesJava allows you to group classes in a collection called a package. Packages are conveni ...
- Core Java Interview Question Answer
This is a new series of sharing core Java interview question and answer on Finance domain and mostly ...
- Core Java 学习笔记——1.术语/环境配置/Eclipse汉化字体快捷键/API文档
今天起开始学习Java,学习用书为Core Java.之前有过C的经验.准备把自己学习这一本书时的各种想法,不易理解的,重要的都记录下来.希望以后回顾起来能温故知新吧.也希望自己能够坚持把自己学习这本 ...
- Core Java读书笔记之String
Java里面的String Conceptually, Java Strings are sequences of Unicode characters. Java里面的String都是Unicode ...
- Top 25 Most Frequently Asked Interview Core Java Interview Questions And Answers
We are sharing 25 java interview questions , these questions are frequently asked by the recruiters. ...
- Difference Between Arraylist And Vector : Core Java Interview Collection Question
Difference between Vector and Arraylist is the most common Core Java Interview question you will co ...
- Core Java (十一) Java 继承,类,超类和子类
Core Java (十一) Java 继承,类,超类和子类 标签: javaJavaJAVA 2013-01-22 17:08 1274人阅读 评论(0) 收藏 举报 分类: java(58) 读 ...
随机推荐
- vue-cli 安装
1 node 下载 http://nodejs.cn/download/ 安装 2 npm install vue-cli -g 3 vue init <template-n ...
- windows server 2008 R2开机进度条闪过后黑屏
起因:想在2008中添加hyper-v角色 事件经过: 1.在服务器管理器中添加hyper-v角色,重启,一直配置失败. 2.在bios开启vt-x,重新添加hyper-v角色,重启,进度条闪一下之后 ...
- Ext未定义问题解决
做的项目用到EXT.NET,调试时候没问题,发布到IIS上出现EXT未定义,把项目的应用程序池改为Classic 模式就可以了.
- Ubuntu win8 小设备版本
Ubuntu小设备支持列表:https://wiki.ubuntu.com/Touch/Devices win8 小设备 刷ubutntu:tieba.baidu.com/p/2772275438
- UVa340(Master-Mind Hints)未完成
#include<stdio.h> int main() { int num,a[100],i,j,b[100]; while(scanf("%d",&num) ...
- 【seo】title / robots / description / canonical
1.title title,就是浏览器上显示的那些内容,不仅用户能看到,也能被搜索引擎检索到(搜索引擎在抓取网页时,最先读取的就是网页标题,所以title是否正确设置极其重要. 1)title一般不超 ...
- siblings() next() nextAll() nextUntil() prev() prevAll() prevUntil() 在 DOM 树中水平遍历
$(document).ready(function(){ $("h2").siblings(); });拿到h2标签的所有的同级元素什么标签都可以 $(document).rea ...
- MongoDB 学习笔记(六):备份与用户管理
一.启动项 1.在启动数据库服务时可以在命令行输入mongod命令,然后直接带一些参数,比如“mongod --dbpath D:\Installations\MongoDB-2.4.6\MongoD ...
- IT级别
IT领袖:年入过亿(例如任正非.马化腾.李彦宏.丁磊.马云等,包括期权股票以及投资理财等收入.) IT大哥:年入千万(级别次于以上几位大佬的公司老板,不缺钱,普遍对上一条里的人物羡慕嫉妒恨.) IT精 ...
- day02_20190106 基础数据类型 编码 运算符
一.格式化输出 name = input('请输入姓名') age = input('请输入年龄') hobby = input('请输入爱好') job = input('请输入你的工作') # m ...