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) 读 ...
随机推荐
- C# switch 语句
switch ("MySql") //选择语句 // case语句 成对 结束 执行到 第一个break { case "SqlServer2000": cas ...
- PHP 时间处理
1:获取当前日期格式时间 date("Y-m-d H:i:s"); 2:转化为时间戳 strtotime( date("Y-m-d") ) 3:转化为日期 ...
- VMware WorkStation 用 VMTools 官方下载地址
每次安装 VMTools 都不成功,谷歌到了这个地址,特地分享. 先打开这个网址, 选择你的 VMware WorkStation 对应的版本号: http://softwareupdate.vmwa ...
- ZJOI2015 幻想乡战略游戏 动态点分治_树链剖分_未调完
Description 傲娇少女幽香正在玩一个非常有趣的战略类游戏,本来这个游戏的地图其实还不算太大,幽香还能管得过来,但是不知道为什么现在的网游厂商把游戏的地图越做越大,以至于幽香一眼根本看不过来, ...
- jQuery节点操作方法大全
1.append() 向每个匹配的元素内部追加内容 HTML代码: <p>我想说:</p> jQuery代码: $('p').append('<b>你好</b ...
- ASP 读取Word文档内容简单示例
以下通过Word.Application对象来读取Doc文档内容并显示示例. 下面进行注册Word组件:1.将以下代码存档命名为:AxWord.wsc XML code复制代码 <?xml ve ...
- 更新时间戳.txt
UPDATE bbs2 INNER JOIN time1 ON bbs2.AnnounceID = time1.AnnounceID SET bbs2.asptime = time1.asptime
- [luogu P1962] 斐波那契数列(带快速幂矩阵乘法模板)
题目背景 大家都知道,斐波那契数列是满足如下性质的一个数列: • f(1) = 1 • f(2) = 1 • f(n) = f(n-1) + f(n-2) (n ≥ 2 且 n 为整数) 题目描述 请 ...
- django rest-farme-work 的使用(1)
Django REST框架是一个用于构建Web API的强大且灵活的工具包 您可能想要使用REST框架的一些原因: 可浏览性 身份认证 支持ORM和非ORM的序列化 良好的文档支持 安装初步 pip ...
- 01.Python基础-1.Python简介及基础
python简介 python简介 python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum(吉多·范罗苏姆)于1989年发明,第一个公开发行版发行于1991年. ...