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# 学习笔记_类
定义:将成员及方法封装到类中,类的实例则称为对象. 结构:属性,类修饰符,class,类名,{类体} 类修饰符:new,public,protected,internal,private,abstra ...
- element-ui Cascader 级联选择器示例
<html> <head>test</head> <style> @import url("http://unpkg.com/element- ...
- 重载(overload)和重写(override)的对比(笔试经常出)
Day04_SHJavaTraing_4-6-2017 1.重载(overload): ①权限修饰符(public private 默认): 无关 ②返回值类型: ...
- (转)RabbitMQ学习之安装
http://blog.csdn.net/zhu_tianwei/article/details/40832185 RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客 ...
- (转)微服务架构 互联网保险O2O平台微服务架构设计
http://www.cnblogs.com/Leo_wl/p/5049722.html 微服务架构 互联网保险O2O平台微服务架构设计 关于架构,笔者认为并不是越复杂越好,而是相反,简单就是硬道理也 ...
- Difference between == and ===
In swift 3 and above === (or !==) Checks if the values are identical (both point to the same memory ...
- jdbc转账操作
public class cs{ public static void main(String[] args){ try{ Connection conn=JdbcUtils.getConnectio ...
- Apex语言(一)开发环境
1.注册salesforce开发者https://developer.salesforce.com/ 2.开发者登录https://login.salesforce.com/ 3.Apex开发者工具 ...
- CSS背景图怎么自适应全屏(手机或者电脑)
#demo{ background-img:url(../bg.png); --(1)适用于上半部分背景图片,下半部分纯色 将背景图像等比缩放到完全覆盖屏幕,背景图有可能超出屏幕(容器) backgr ...
- UEditor如何读取数据库信息?
你用的什么语言,服务器端生成的时候,直接写在里面就可以了啊,比如 <textarea name="content" cols="800" rows=&qu ...