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) 读 ...
随机推荐
- ubuntu 搭建Mercurial 服务(nginx)
ubuntu 搭建Mercurial 服务(nginx) 环境:ubuntu 12.05 Mercurial 步骤: (1)安装nginx 和 Mercurial: sudo apt-get ins ...
- JS 1000以内的水仙花数 (三位数 各个数字的立方和等于本身 例如 1*1*1 + 5*5*5 + 7*7*7 = 157)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 反射API提供的常用类和函数
ReflectionParameter 取回了函数或方法参数的相关信息. {//要自行检查函数的参数,首先创建一个 ReflectionFunction 或 ReflectionMethod 的 实例 ...
- Java 分布式事务
0 引言 本文主要介绍java中分布式事务以及对应的解决方案. 1 分布式事务产生的原因 1.1 数据库分库分表 当数据库单表一年产生的数据超过1000W,那么就要考虑分库分表,具体分库分表的原理在此 ...
- Fiddler4抓包工具使用教程
本文参考自http://blog.csdn.net/ohmygirl/article/details/17846199,纯属读书笔记,加深记忆 1.抓包工具有很多,为什么要使用Fiddler呢?原因如 ...
- C++基础 (1) 第一天 C++相对C的改进 命名空间 引用
第一天 语法 STL 数据结构 设计模式… 2 C++语言的间接 C++ = C语言+面向对象 本贾尼 语言分类: 不关心效率 只关心架构:java/脚本语言 效率:(内存要自己管理了,操作指针)C ...
- 训练1-H
小明今年3岁了, 现在他已经能够认识100以内的非负整数, 并且能够进行100以内的非负整数的加法计算. 对于大于等于100的整数, 小明仅保留该数的最后两位进行计算, 如果计算结果大于等于100, ...
- 自学python 第二天
1. if基本语句 if 条件: 内部代码块 else: .. . .. . . print(“........”) if 1 == 1 : print(“a会所”) print(“b会所”) e ...
- struct 模块解决 TCP黏包问题
首先来看一下产生黏包现象的一段代码: # server.py 服务端 import socket sk = socket.socket() sk.bind(('127.0.0.1',9000)) ...
- Java基础学习总结(63)——Java集合总结
数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作.Java提供了几个能有效地组织和操作数据的数据结构,这些数据结构通常称为Java集合框架.在平常的学习开发中,灵 ...