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. hash算法打散存储文件

    1.首先,为防止一个目录下面出现太多文件,所以使用hash算法打散存储 举例代码: int hashcode = filename.hashCode();//得到hashCode int dir1 = ...

  2. AngularJS学习笔记(四) 自定义指令

    指令(directive)是啥?简单来说就是实现一定功能的XXX...之前一直用的ng-model,ng-click等等都是指令.当我有一个ng没提供的需求的时候,就可以自定义个指令.指令的好处显而易 ...

  3. [冬令营模拟]wzj的题目#1

    T1 少膜一个,T3 暴力写挂 强势 rank1 -> rank2 一场比赛两道线段树分治,给力 T1 password 给你 m 个禁止字符串,求长度为 n 的所有字符串中至少包含这些禁止字符 ...

  4. ACM学习历程—UESTC 1219 Ba Gua Zhen(dfs && 独立回路 && xor高斯消元)

    题目链接:http://acm.uestc.edu.cn/#/problem/show/1219 题目大意是给了一张图,然后要求一个点通过路径回到这个点,使得xor和最大. 这是CCPC南阳站的一道题 ...

  5. Erlang generic standard behaviours -- gen_server system msg

    这是Erlang generic standard behaviors gen_server 分析的系列的最后一篇,主要分析gen_server module 辅助性的功能函数. 在gen_serve ...

  6. JS 获取json长度

    var keleyijson={"plug1":"myslider","plug2":"zonemenu"," ...

  7. 【转】 Pro Android学习笔记(六十):Preferences(4):MultiSelect List Preference

    目录(?)[-] XML文件 在设备中保存 读出信息 ListPreference提供单选列表,我们可以通过CheckBoxPreference提供多选列表.此外,Android在3.0后提供Mult ...

  8. 【转】 Pro Android学习笔记(五一):ActionBar(4):标准和Tab模式

    之前,我们学习的Action Bar是标准模式,Tab模式的如下图所示. 对于Tab,我们在Android学习笔记(二二): 多页显示-Tag的使用中学习过,但Action Bar的tab更适合fra ...

  9. 多校联合训练&hdu5791 Two

    hdu5791 dp[i][j]表示的是序列A前i个数字和序列B前j个数字的公共子序列的总个数,那么的dp公式就可以这么表示 理解一下此公式若最尾部的a[i]和b[j]相等的话,那么单独的a[i]和b ...

  10. PHPstorm 常用快捷键操作

    1.ctrl+ N: 查找类 2.ctrl+ shift+ N: 全局搜索文件 ,优先文件名匹配的文件 3.ctrl + G: 定位行,跳转行 4.ctrl + F12: 显示当前页面类的所有方法 / ...