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. javascript通用参数判断

    //判断value是小于等于max的数字function isNumberMax(value, max){    if(!isNumber(value) || !isNumber(max)){     ...

  2. ajax(异步页面动态刷新)

    AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX = 异步 JavaScript和 ...

  3. Saiku_学习_02_Schema Workbench 开发mdx和模式文件

    一.前言 saiku的查询都是通过cube来进行的.因此每当我们要进行一次多维度查询时,都要先修改xml.上传.重启才能生效,不仅效率低,还不利于学习和理解MDX和模式文件. 通过 workbench ...

  4. POJ-1564 dfs

    #include"cstring" #include"cstdio" +; int nux[maxn]; int nua[maxn];//解的集合 int t; ...

  5. Angular.forEach用法

    1.针对对象循环(key,value) 官方示例: var values = {name: 'misko', gender: 'male'}; var log = []; angular.forEac ...

  6. ACM学习历程—HDU 5459 Jesus Is Here(递推)(2015沈阳网赛1010题)

    Sample Input 9 5 6 7 8 113 1205 199312 199401 201314 Sample Output Case #1: 5 Case #2: 16 Case #3: 8 ...

  7. shock编程

    Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序.要学Internet上的TCP/IP网络编程,必须理解Socket ...

  8. centos7 查看启动ntp服务命令

    标签(空格分隔): centos7 系统 1. 查看ntp服务命令: [root@node1 ~]# systemctl status ntpd * ntpd.service - Network Ti ...

  9. RS485总线防雷保护方案

    RS485作为最为最常用的电表通讯方式之一.日常生活中雷电和静电干扰已经成为485通信总线在实际工程经常遇到的问题.故如何对芯片以及总线进行有效的保护,是摆在每一个使用者面前的一个问题.在这里,我们主 ...

  10. java基础知识(9)---异常

    异 常: 异常:就是不正常.程序在运行时出现的不正常情况.其实就是程序中出现的问题.这个问题按照面向对象思想进行描述,并封装成了对象.因为问题的产生有产生的原因.有问题的名称.有问题的描述等多个属性信 ...