1 内部类进阶

package package8;
//原则:先用内部类写  之后由于内部类匿名无法引用  用其继承的父类或实现的接口名
//再复写所有的抽象方法即可(是所有,否者还是抽象的,无法创建对象)
interface Inter{
    public abstract void method();
}
class Demo{
    public void function(){
        new Inter(){
            public  void method(){
                    System.out.println("定义的匿名内部类中的方法");
            }
        }.method();
    }
}
class Test{
    public static void main(String[] args){
        Demo d=new Demo();
        d.function();
        show(new Inter(){
            public void method(){
                System.out.println("以接口作为参数成功");
            }
        });  //大括号,括号,分号  注意别漏写
    }
    public static void show(Inter in){  //多态   自动上转型
        in.method();
    }
}

运行结果:

定义的匿名内部类中的方法

以接口作为参数成功

2 java 数组的一些问题

(1) 一维数组

int a[]或int[] a;   a=new int[5];          相当于int a[]=new int[5];

说明:Java对所有使用new运算符动态分配的存储单元都进行初始化工作,变量根据所属的数据类型相应获得初值

short,int,byte,long       0

char                                ‘\u0000’

float                                0.0f

double                             0.0

boolean                           false

引用数据类型                    null

(2)   数组是引用类型

(3)   一个数组变量保存一个数组的引用,即该数组占用的一块存储空间的首地址,长度及引用计数等特性,两个数组变量之间是引用赋值,传递的是地址等引用特性,没有申请新的存储空间。

int  a[]={1,2,3,4,5},b[];

b=a;(之后对b的操作同时改变a的元素值)

可以使用关系运算(==,!=)判断两个数组是否引用同一个数组

(4)   二维数组

int []mat[];     int [][]mat;    int mat[][]=new int[2][3];

mat.length  返回二维数组的长度,即二维数组的行数

mat[0].length  返回一维数组的长度,即二维数组的列数

(5)   不规则的二维数组

由于Java的二维数组采用动态引用的模型,二维数组mat中每一个一维数组mat[0],mat[1]是分散存储的,故可以多次分配。

如:int mat[][]=new[2][];

mat[0]=new int[2];

mat[1]= new int[3];

3  访问控制

类有2种访问控制权限,类中成员有4种访问控制权限

(1)   类的访问控制权限:

    公有:所有类访问

    缺省:无修饰符,可被当前包中的类访问

    注意:一个源程序文件可以声明多个类,但用public的修饰符的类只能有一个,且该类名必须与文件名相同。

(2)   类中成员的访问控制权限

    一个类中的所有成员都可以被本类的代码访问,为了控制其他类的访问,类的成员有4种访问控制权限。

               当前 类                当前包             (其他包的)子类             所有类

    private(私有)           yes

    缺省                           yes                    yes

    protected(保护)        yes                    yes                      yes

     public(公有)             yes                    yes                      yes                        yes

注意:缺省为当前包中可见,protected为子类中可见,另外,public等权限修饰符不能用于修饰方法体中的局部变量,因为局部变量的作用域仅限于当前方法,对其他类不可见。

4 格式化Date的方法

@Test
    public void fm(){
        Date d = new Date();
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(df.format(d));
    }

有了guava的joda time以后似乎已经不推荐这么写了(see DateTime)

5 一个实例来看继承时成员变量与成员方法的访问情况

package inherite;

class Father{
    public Father(){
        System.out.println("i am father");
    }

    public int age = 40;
    String name ="father";
    public void teach(){
        System.out.println("teaching");
    }
}

class Son extends Father{

    public Son(){
        System.out.println("i am son");
    }
    public int age =15;
    public void study(){
        System.out.println("studying");
    }

    public void teach(){
        System.out.println("teachinghahah");
    }
}

public class Test {
    public static void main(String[] args) {
        Son son = new Son();
        System.out.println(son.name);
        System.out.println("-----------");

        Father f = new Son();  //上转型时成员变量看父类,成员方法看子类
//        f.study();  //这句编译失败
        f.teach();
        System.out.println(f.name);
        System.out.println(f.age);

        System.out.println("-----------");
        Son s = (Son) f;
        s.study();
        s.teach();
        System.out.println(s.age);
    }
}

运行结果:

i am father
i am son
father
-----------
i am father
i am son
teachinghahah
father
40
-----------
studying
teachinghahah
15

【java】基础中的杂乱总结(二)的更多相关文章

  1. java基础之IO流(二)之字符流

    java基础之IO流(二)之字符流 字符流,顾名思义,它是以字符为数据处理单元的流对象,那么字符流和字节流之间的关系又是如何呢? 字符流可以理解为是字节流+字符编码集额一种封装与抽象,专门设计用来读写 ...

  2. Java基础中的RMI介绍与使用

    今天在这边介绍一下Java基础中的rmi使用.其实rmi有什么样的使用场景呢?它跟webservice有什么区别呢?其实webservice主要是可以跨语言实现项目间的方法调用,而rmi只是java内 ...

  3. Java基础加强学习笔记(二)

    一.反射的基础Class类 1.如何得到各个字节码对应的实例对象 (1)类名.class,例如 System.class (2)对象.getClass(),例如 new Data().getClass ...

  4. 【干货】用大白话聊聊JavaSE — ArrayList 深入剖析和Java基础知识详解(二)

    在上一节中,我们简单阐述了Java的一些基础知识,比如多态,接口的实现等. 然后,演示了ArrayList的几个基本方法. ArrayList是一个集合框架,它的底层其实就是一个数组,这一点,官方文档 ...

  5. java基础篇---I/O技术(二)

    接着上篇http://www.cnblogs.com/oumyye/p/4314412.html java I/O流---内存操作流 ByteArrayInputStream和ByteArrayOut ...

  6. Java基础面试题集(二)

    Java程序员面试题集(1-50) 一.Java基础部分 1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: 1)抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象 ...

  7. Java基础中的一些注意点

    1.在Java编程语言中,标识符是赋予变量.类或方法的名称.标识符可从一个字母.下划线(_)或美元符号($)开始,随后也可跟数字.标识符是大小写区别对待的并且未规定最大长度. 2.Java技术源程序采 ...

  8. Java基础之编程语法(二)

    1.常量: 整型:整数,4个字节. 长整型:整数,8个字节.以L结尾. 单精度浮点数:小数,4个字节.以F结尾. 双精度浮点数:小数,8个字节. 布尔:只有两个值,真(true)或假(false),1 ...

  9. Java基础周测一、二(50题)

    一.单选题 (共50题,250分) 1.下列选项不可作为Java语言变量名的是(    ). A. a1 B. $1 C. _1 D. 21 正确答案: D 2.有一段Java应用程序,它的类名是a1 ...

随机推荐

  1. 认识System,System32,Syswow64

    有时候人们怀疑一个系统的底层结构能否保证这个系统在被使用时达到安全而高效,64位版本的Windows在这方面就比较完美.Windows XP和Windows Server 2003都是运行64位硬件的 ...

  2. hdu_5884_Sort(二分+单调队列)

    题目链接:hdu_5884_Sort 题意: 有n个数,每个数有个值,现在你可以选择每次K个数合并,合并的消耗为这K个数的权值和,问在合并为只有1个数的时候,总消耗不超过T的情况下,最小的K是多少 题 ...

  3. Mysql表名区分大小写

    mysql数据库在windows服务器上表名和字段名均不区分大小写, 但在linux服务器上表名默认是区分大小写的,可在/etc/my.cnf文件中的[mysqld]下面加上一条配置 lower_ca ...

  4. Python之迭代器&装饰器&生成器&正则

    1.迭代器 迭代器是访问数据集合的一种方式,它只能从集合的第一个元素开始顺序访问,直到最后一个元素结束.类似于linux里的cat命令,只能挨行读取文本内容,不可以跳到中间或者尾部读取(不会把所有的数 ...

  5. HDU 5612 Baby Ming and Matrix games(DFS)

    题目链接 题解:题意为给出一个N*M的矩阵,然后(i∗2,j∗2) (i,j=0,1,2...)的点处是数字,两个数字之间是符号,其他位置是‘#’号. 但不知道是理解的问题还是题目描述的问题,数据中还 ...

  6. C语言 - 大小端问题

    目前使用的机器都是使用字节BYTE来存储的. 对于跨越多字节的对象,必须搞清楚两个规则: 这个对象的地址是什么 在存储器中如何按照这些字节的存放的书序 对于一个整型对象 a=0x12345678,一共 ...

  7. [ An Ac a Day ^_^ ] CodeForces 601A The Two Routes 最短路

    14号就ccpc全国赛的全国赛了 而且也快东北赛的选拔赛了 现在队伍实力实在不行 参加了也是边缘化的队伍 虽然有新生保护的设置 但实话说 机会还是不大 所以不如趁现在开始好好努力 明年也许还有机会 A ...

  8. nefu 1191 平行宇宙 (bfs)

    Description 小k是时空贸易者,他经常在两个平行宇宙之间往来经商,现在他要从S点到达E点,问最少需要多长时间.(已知小k在同一个宇宙中只能向上下左右四个方向移动,每次移动需要1个单位时间,且 ...

  9. 【笔记】虚拟机用Xshell登陆报错“ssh服务器拒绝了密码”解决方法

    自己本地安装了VMware Workstation之后,创建虚拟机,一开始是可以用Xshell登陆的,几天后,重启了电脑以及虚拟机,发现无法登陆了,还没有输入密码就有如下报错信息 这时候开始排查原因, ...

  10. HTML+CSS Day11产品网站

    1.佰亿首页 效果图: 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "ht ...