java整理(二)
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整理(二)的更多相关文章
- 利用JAVA生成二维码
本文章整理于慕课网的学习视频<JAVA生成二维码>,如果想看视频内容请移步慕课网. 维基百科上对于二维码的解释. 二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图 ...
- 单元测试系列之十:Sonar 常用代码规则整理(二)
摘要:帮助公司部署了一套sonar平台,经过一段时间运行,发现有一些问题出现频率很高,因此有必要将这些问题进行整理总结和分析,避免再次出现类似问题. 作者原创技术文章,转载请注明出处 ======== ...
- Java EE : 二、图解 Cookie(小甜饼)
目录 Java EE : 一.图解Http协议 Java EE : 二.图解 Cookie(小甜饼) Java EE : 三.图解Session(会话) 概述 一.概述 二.详细介绍Cookie 传输 ...
- java实现二维码
说起二维码,微信好像最先启用,随后各类二维码就开始流行起来了.那什么是二维码呢. 1.什么是二维码?百度一下即可 http://baike.baidu.com/view/132241.htm?fr=a ...
- Java 设计模式(二)-六大原则
Java 设计模式(二)-六大原则 单一职责原则(Single Responsibility Principle) 定义: 不要存在多余一个原因导致类变更,既一个类只负责一项职责. 问题由来: 当类A ...
- Java进阶(二十五)Java连接mysql数据库(底层实现)
Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜 ...
- 20175212童皓桢 Java实验二-面向对象程序设计实验报告
20175212童皓桢 Java实验二-面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设 ...
- java 多线程二
java 多线程一 java 多线程二 java 多线程三 java 多线程四 线程中断: /** * Created by root on 17-9-30. */ public class Test ...
- Linux -- 基于zookeeper的java api(二)
Linux -- 基于zookeeper的java api(二) 写一个关于基于集群的zookeeper的自定义实现HA 基于客户端和监控器:使用监控的方法查看每个注册过的节点的状态来做出操作. Wa ...
- 浅谈Java代理二:Cglib动态代理-MethodInterceptor
浅谈Java代理二:Cglib动态代理-MethodInterceptor CGLib动态代理特点: 使用CGLib实现动态代理,完全不受代理类必须实现接口的限制,而且CGLib底层采用ASM字节码生 ...
随机推荐
- css绝对对齐
方法1:使用text-align:justify 能够兼容所有的浏览器,但是一定要在模块和模块或者字之间存在空格,换行符或者制表符,这样才能起作用 ;;} /* 说明: 1.IE中要实现块内单行两端对 ...
- js 定义hash类
// JavaScript Documentfunction HashTable(){ this._hash={}; this._count=0; /** *添 ...
- GitHub基本使用
什么是GitHub? GitHub是用于版本控制和协作的代码托管平台.它可以让您和其他人在任何地方一起工作 本教程教你如GitHub必需资源,如仓库,分支,提交和拉请求.您将创建自己的Hello Wo ...
- Mybatis异常_01_Invalid bound statement (not found)
异常信息:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.taotao.map ...
- CSS cursor 属性--css html 鼠标手型,鼠标形状,鼠标效果,样式
css鼠标手型cursor中hand与pointer Example:CSS鼠标手型效果 <a href="#" style="cursor:hand"& ...
- ROS 负载均衡
[xuan89@MikroTik] > :for i from=1 to=$z do= {/ip firewall mangle add action=mark-connection chain ...
- log4net初探
/// <summary> /// Static constructor that initializes logging by reading /// settings from the ...
- Linux环境下,开启tomcat时报transport error 202: bind failed: 地址已在使用
转载自:http://blog.csdn.net/mooncom/article/details/61913813 问题描述:今天我在Linux环境下配置tomcat,在tomcat/conf下的se ...
- HDOJ1213(并查集)
set容器中的值互异,非常好用. 水题,直接贴代码了 #include<iostream> #include<cstdio> #include<set> using ...
- zk 02之 Windows安装和使用zookeeper
本文介绍的 Zookeeper 是以 3.4.5 这个稳定版本为基础,最新的版本可以通过官网 http://hadoop.apache.org/zookeeper/来获取,Zookeeper 的安装非 ...