1.this关键字。this表示属性,表示方法和当前对象。

this.属性调用属性。

方法分为两类,构造方法和普通方法,他们的调用形式是不同的。调用本类的方法this.方法()(这是调用普通方法)如果希望,在一类之中完成构造方法的互调用可以使用this()操作形式。this()调用无参构造this(String str)调用有参构造。

要注意两点:1.使用this关键字调用构造方法的操作,只能放在类中构造方法的首行。2.一个类中虽然可以使用this进行构造方法的互调用,但是一定要保留一个构造方法,是不使用this调用的,以作为程序的出口。

表示当前对象。当前对象:就是当前正在调用类中方法的对象。

2.对象数组:就是一组相关对象的集合。

原来对象的定义是 类名称  对象名称=new 类名称();对象数组的定义是类名称 数组名称[]=new 类名称[长度];这是他们之间的区别。

这样动态初始化之后对象数组,开辟空间后,数组中的每一个元素的内容都是null。要对每一个元素都必须进行对象的实例化的。

3.对象比较。主方法或者说主类,其实是客户方(第三方)就是调用程序的一方,对于客户端操作应该越简单越好。例如在生活中,比较自己和通缉令上的人是否一样,肯定是自己比较,不会去问问别人,所以这是自己的操作。如果你想使用显示器,希望自己组元器件,自己搞线,拆装等等还是希望摁一下按钮就可以呢,显然是第二种,所以,一些功能的实现不要总是交给客户方,这样客户方会很复杂。public boolean compar(Person per)(就像比对中奖号码一样,得有一个地方接收这个信息,这个时候我们要比较的是对象,所以接收的信息是对象。所以是Person
per,这个方法中有两个Person对象,一个是传入进来的Person对象,一个是调用compare方法的当前对象,当一个类的对象传递到类的内部之后最大的好处在于:可以直接通过对象调用私有操作)

对象比较的关键有两点:1.对象比较的操作一定是每一个类自己的功能。2.一个类可以接收本类的引用,而且接收之后,可以直接通过这个对象调用类中的属性,不再需要使用getter方法,因为此时属于类的内部,内部是可以直接访问私有属性的。

4.static关键字。staic关键完成两种操作:一个是定义属性,一个是定义方法。

定义属性:将成为公共属性,每个对象都拥有它,一个对象修改了内容,其他的都变。static定义的属性有时被称为类属性,而且类属性最大的特点是可以直接通过类名称调用,而且调用的时候可以在没有实例化对象产生的情况下进行。Person.city="北京"。

常见的内存分配:栈内存:保存堆内存的地址。堆内存:保存普通属性。全局数据区:保存所有的全局数据。static就是全局数据。全局代码区:保存所有的操作方法。

static定义方法:现在对于类中的方法就分为两类:非static方法:必须由对象进行调用,而且非static方法可以调用static方法或属性。

static方法:可以由类名称调用,或者实例化对象调用,而且所有的static方法不能调用非static方法。

之所以由主方法调用的方法前必须使用static,主要原因也是因为主方法使用了static,即:static方法可以直接调用static操作,而不能调用非static操作。在开发中,不建议定义其他方法,主类中最好只有一个方法。

static的应用有两点:1.使用static属性主要用于表示公共变量的保存。2.使用static方法一般都是在用于取得类的实例化对象的操作上,或者是一些不希望有对象的类中使用。

5.代码块部分不重要

6.内部类:缺点:一个类中本来只包含属性和方法,此时增加了一个类,这样的做法会破坏程序的结构。优点:可以和外部类之间进行方便的操作,可以方便的访问外部类的私有操作。

内部类对象实例化格式:外部类.内部类 内部类对象 = new 外部类().new 内部类()

Class Outer{//定义类

private String name=”Hello”;//外部类中的私有属性

private class Inner{//定义内部类

public void print(){//内部类的操作方法

System.out.println(name)}

}

}

Class Outer{//定义类

private String name=”Hello”;//外部类中的私有属性

private class Inner{//定义内部类

public void print(){//内部类的操作方法

System.out.println(name)}

}

}

public class OODemo{

pulic static void main(String args[]){

Outer.Inner in =new Outer().new Inner();

in.print();}

}

使用static定义内部类的话,则表示这个内部类就变成了外部类,而内部类额完整名称也就变为了外部类.内部类,而且此时也只能访问外部类中的static操作了。Outer.Inner in =new Outer. Inner();内部类除了可以方便的访问外部类中的私有操作,外部类也能方便的访问内部类的私有操作。

在方法中定义内部类:要想访问方法中的参数或者变量,则参数或变量钱必须使用final关键字定义。

java整理(二)的更多相关文章

  1. 利用JAVA生成二维码

    本文章整理于慕课网的学习视频<JAVA生成二维码>,如果想看视频内容请移步慕课网. 维基百科上对于二维码的解释. 二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图 ...

  2. 单元测试系列之十:Sonar 常用代码规则整理(二)

    摘要:帮助公司部署了一套sonar平台,经过一段时间运行,发现有一些问题出现频率很高,因此有必要将这些问题进行整理总结和分析,避免再次出现类似问题. 作者原创技术文章,转载请注明出处 ======== ...

  3. Java EE : 二、图解 Cookie(小甜饼)

    目录 Java EE : 一.图解Http协议 Java EE : 二.图解 Cookie(小甜饼) Java EE : 三.图解Session(会话) 概述 一.概述 二.详细介绍Cookie 传输 ...

  4. java实现二维码

    说起二维码,微信好像最先启用,随后各类二维码就开始流行起来了.那什么是二维码呢. 1.什么是二维码?百度一下即可 http://baike.baidu.com/view/132241.htm?fr=a ...

  5. Java 设计模式(二)-六大原则

    Java 设计模式(二)-六大原则 单一职责原则(Single Responsibility Principle) 定义: 不要存在多余一个原因导致类变更,既一个类只负责一项职责. 问题由来: 当类A ...

  6. Java进阶(二十五)Java连接mysql数据库(底层实现)

    Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜 ...

  7. 20175212童皓桢 Java实验二-面向对象程序设计实验报告

    20175212童皓桢 Java实验二-面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设 ...

  8. java 多线程二

    java 多线程一 java 多线程二 java 多线程三 java 多线程四 线程中断: /** * Created by root on 17-9-30. */ public class Test ...

  9. Linux -- 基于zookeeper的java api(二)

    Linux -- 基于zookeeper的java api(二) 写一个关于基于集群的zookeeper的自定义实现HA 基于客户端和监控器:使用监控的方法查看每个注册过的节点的状态来做出操作. Wa ...

  10. 浅谈Java代理二:Cglib动态代理-MethodInterceptor

    浅谈Java代理二:Cglib动态代理-MethodInterceptor CGLib动态代理特点: 使用CGLib实现动态代理,完全不受代理类必须实现接口的限制,而且CGLib底层采用ASM字节码生 ...

随机推荐

  1. PHP+MySQL百万级数据插入的优化

    插入分析 MySQL中插入一个记录需要的时间由下列因素组成,其中的数字表示大约比例: 连接:(3) 发送查询给服务器:(2) 分析查询:(2) 插入记录:(1x记录大小) 插入索引:(1x索引) 关闭 ...

  2. Selenium-一组元素的定位

    一组元素的定位: 有时候我们可能需要定位一组元素,比如一组checkbox,这时候要实现的思路大概为: 先把一组元素识别出来,然后定位你需要的元素 下面是查找多个元素(这些方法将返回一个列表): 方法 ...

  3. ATL com的dll文件与tlb文件

    一..tlb文件: 只有COM组件才有tlb文件,普通dll文件没有. 包含内容: 1.它包含了COM类和接口的GUID值,接口的函数声明信息,并不是接口的实现文件.相当于类和接口的头文件. tlb文 ...

  4. 06 - Django应用第三步

    知识点 1) 编写urls 配合include()的URL查找过程 获取正则抓取的值并命名, 给url取名 2) 模板的编写 for循环的遍历 用点的方式执行函数, 不带括号 3) 视图函数的编写 H ...

  5. bzoj1059ZJOI2017矩阵游戏

    小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏——矩阵游戏.矩阵游戏在一个N *N黑白方阵进行(如同国际象棋一般,只是颜色是随意的).每次可以对该矩阵进行两种操作:行交换操作:选 ...

  6. Gym 101142C :CodeCoder vs TopForces(强连通算法)

    题意:N个人,每个人有a属性和b属性,如果一个人的a或者b大于另外一个人,我们说这个人可以打败那个人.且这种关系可以传递.对于每个人,输出他可以打败多少人.(保证每个a不相同,保证每个b不相同. 思路 ...

  7. django autocommit的一个坑,读操作的事务占用导致锁表

    版权归作者所有,任何形式转载请联系作者.作者:petanne(来自豆瓣)来源:https://www.douban.com/note/580618150/ 缘由:有一个django守护进程Daemon ...

  8. Oracle 12C 新特性之级联truncate

    12c之前的版本中,在子表引用一个主表以及子表存在记录的情况下,是不提供截断此主表操作的.而在 12c 中的带有 CASCADE 操作的TRUNCATE TABLE 可以截断主表中的记录,并自动对子表 ...

  9. MySQL Sending data导致查询很慢的问题详细分析

    这两天帮忙定位一个MySQL查询很慢的问题,定位过程综合各种方法.理论.工具,很有代表性,分享给大家作为新年礼物:) [问题现象] 使用sphinx支持倒排索引,但sphinx从mysql查询源数据的 ...

  10. wpf 样式继承

    当定义的wpf多个样式,其样式内容(属性.触发器等)有较多的重复时,可以考虑将其抽象成父样式,来提升样式代码的可维护性以及减少代码冗余. wpf 进行样式继承时,需要使用style的BasedOn属性 ...