类是JAVA中一个重要的概念,可以把类理解成一个对象的抽象,这个抽象的对象包含了变量(用来描述这个对象的属性)和方法(用来描述这个对象可以干什么),类中的各个成员之间可以相互调用(static修饰的成员不能访问没有static修饰的成员).

而每个类中又必须有一个或者多个构造方法,这个构造方法用来将这个抽象的对象实例化。

类的定义格式为

 [修饰符] class 类名{

    构造函数;

    成员变量;

    方法;

 }

在类中的构造函数、成员变量和方法都可以是0个或者多个

类的修饰符可以使用public、final、abstract,或者没有修饰符,abstract修饰的类被成为抽象类

内部类:

是指定义在类中的类

public class A{

    int a;
int b;
public void c(){}
public class B{
......
}
}

内部类访问外部类的private属性或方法使用   外部类.this.属性(方法)来实现

       内部类访问外部类的static属性或方法,可以直接使用类名.属性(方法)

方法

在面向对象变成语言中,类才是一等公民,整个系统由一个又一个类组成,方法必须属于类或者对象

一旦将一个方法定义在某个类的类体内,如果这个方法使用static修饰,则这个方法属于这个类,否则,这个方法属于这个类的实例

  注意:

1.方法不能独立定义,方法只能在类体内定义

2.从逻辑意义上来看,方法要么属于该类本身(使用static修饰),要不属于该类的一个对象

3.永远不能独立执行方法,执行方法必须使用类或对象作为调用者

  

方法的参数的传递

如果声明方法时包含了形参声明,则调用方法时必须给这些形参指定参数值,调用方法时实际传给形参的参数值也被称为实参

传递多个形参的定义方法,但长度可变的形参只能处于形参列表的最后,一个方法中最多只能包含一个长度可变的形参,长度可变的形参本质是一个数组,因此调入一个包含长度可变形参的方法时,这个长度可变的形参既可以传入多个参数,也可以传入一个数组。例如  :

  

public static void test(int a,String...books){

}

构造方法

构造方法是类中的特殊存在,它是一个与类同名且没有返回值类型的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。

构造方法有以下特点

1、构造方法与类同名

2、每个类可以有一个以上的构造方法

3、构造方法可以有0个、1个或者1个以上的参数

4、构造方法没有返回值

5、构造方法总是伴随着new操作符的执行被调用

递归方法

一个方法体内调用它自身,被称为方法递归。方法递归包含了一种隐式循环,它会重复执行某段代码,但这种重复执行无须循环控制

方法的重载

多个方法,有相同的名字、不同的参数,便产生了重载(跟返回值无关)。

编译器通过用各个方法给出的参数类型与特定方法调用所使用的值进行匹配来挑选出相应的方法。

例如:

Person p = new Person()
Person p = new Person("张三",50)

编译器通过通过Person的参数来确定调用哪个构造方法

创建对象使用  类名 方法名 = new 类的构造函数;

例如

Person p1 = new Person();
Person p2 = new Person("张三",40)

其实上面的对象创建是由Person p1 = null 和 P1 = new Person两部分组成的

Person p1 = null部分称之为“声明对象”、P1 = new Person部分称之为“给对象实例化”,现实编程中往往将两步合并

方法的重写

方法的重写存在于JAVA的继承中,子类继承了父类的方法之后往往需要对父类的方法做出修改,在子类中修改父类的方法被称为方法的重写

注意:

1、方法的重写需要满足:方法名相同,返回值类型相同,参数也相同

2、被子类重写的方法,不能有比父类方法更严格的访问权限

方法重写和方法重载的区别

 

重载

重写

单词

Overloading

Overriding

定义

方法名相同,参数列表不同

方法名、返回值、参数列表全部相同

权限

没有要求

重写的方法不能比父类的方法权限更严格

范围

同一类

继承

方法及属性的权限修饰符及作用域

private < default < protected < public

private ,私有,只可在当前类中访问

default,默认,可在包内访问

protected,保护,可在本包,本类和子类下使用

public,公开,可在整个工程下访问

对象

上面说到,类的本身是一个抽象的对象,我们通过调用类中的构造函数来讲这个抽象的对象实例化,我们使用new关键字来调用这个类的构造函数,来创建这个类的实例。

创建对象之后,就可以使用这个独享了,可以方法这个对象的实例变量,可以调用这个对象的方法。

在面向对象的编程语言中,一切事务均可以看作是一个对象。

JAVA笔记整理(三),JAVA中的类和方法的更多相关文章

  1. C#可扩展编程之MEF学习笔记(三):导出类的方法和属性

    前面说完了导入和导出的几种方法,如果大家细心的话会注意到前面我们导出的都是类,那么方法和属性能不能导出呢???答案是肯定的,下面就来说下MEF是如何导出方法和属性的. 还是前面的代码,第二篇中已经提供 ...

  2. Java中 util 包 Calendar类制作万年历(不用自己写方法,直接用Java写好的包中的类的方法)

    代码前需要了解的关于Calendar类的内容:      1.在util包中,首先要知道Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象.Calendar 的 ...

  3. Python学习笔记整理(三)Python中的动态类型简介

    Python中只有一个赋值模型 一.缺少类型声明语句的情况 在Python中,类型是在运行过程中自动决定的,而不是通过代码声明.这意味着没有必要事声明变量.只要记住,这个概念实质上对变量,对象和它们之 ...

  4. 菜鸡的Java笔记第三 - java 自动转换原则

    自动转换原则 数据范围保存大的数据类型要转换为数据范围保存小的数据类型,使用强制转换(强制转型就是在变量的前面加括号,在括号里写上需要强制要转的类型.) 数据范围保存小的数据类型可以自动转换为数据范围 ...

  5. java笔记整理

    Java 笔记整理 包含内容     Unix Java 基础, 数据库(Oracle jdbc Hibernate pl/sql), web, JSP, Struts, Ajax Spring, E ...

  6. “全栈2019”Java第三十八章:类与方法

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  7. JAVA基础(二)—— 常用的类与方法

    JAVA基础(二)-- 常用的类与方法 1 Math类 abs ceil floor 绝对值 大于等于该浮点数的最小整数 小于等于该浮点数的最大整数 max min round 两参数中较大的 两参数 ...

  8. C#中的类、方法和属性

    这节讲C#中的类,方法,属性.这是编码中我们最直接打交道的三个结构.      类: 类(class)是面向对象中最基本的单元,它是一种抽象,对现实世界中事物的抽象,在C#中使用class关键字声明一 ...

  9. 全面了解python中的类,对象,方法,属性

    全面了解python中的类,对象,方法,属性 python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性( ...

随机推荐

  1. 使用wkhtmltopdf将多个html批量转成pdf

    相关工具:wkhtmltopdf 场景:比如笔者有 ognl中文文档,全部是html,现在想把它转成pdf,放到ipad阅读,文件如下: 下载好wkhtmltox(本地安装目录 D:\develop\ ...

  2. HTML中设置在浏览器中固定位置fixed定位

    之前的博文 HTML布局排版之制作个人网站的文章列表,中链接到的文章本身,也需要返回到列表主页,可在每个文章页面加导航条,也可以只加个返回到列表主页的链接.刚开始是想在博文最下方,加个返回文章列表的链 ...

  3. HTML布局排版2如何设置div总是相对于页面居中

    由于浏览器页面有大有小,为了适应浏览器宽度,可以让div总是对于浏览器居中,设置div左右两边的margin为auto可以实现这个效果.如图,第一个是默认div,无上下左右外边距,第二个是设置了mar ...

  4. Nodejs Client for FastDFS

    FastDFS 是分布式文件存储系统.这个项目是FastDFS的NodeJS客户端,用来与FastDFS Server进行交互,进行文件的相关操作.我测试过的server版本是4.0.6. githu ...

  5. social engineering toolkit

    1. freebuf介绍 http://www.freebuf.com/sectool/73409.html 2. github https://github.com/trustedsec/socia ...

  6. JVM(二) 栈内存结构

    栈内存是描述java方法执行的内存模型,每个方法在执行的同时都会创建一个栈帧(Stack Frame)用于存储局部变量表.操作数栈.动态链接.返回出口等信息.每一个方法从调用直至执行完成的过程,就对应 ...

  7. PHP与Cookie

    不管什么语言写的cookie,本质上没区别. cookie 常用于识别用户.cookie 是服务器留在用户计算机中的小文件.每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie.通过 PH ...

  8. python爬虫-豆瓣电影的尝试

    一.背景介绍 1. 使用工具 Pycharm 2. 安装的第三方库 requests.BeautifulSoup 2.1 如何安装第三方库 File => Settings => Proj ...

  9. kafka 集群环境搭建 java

    简单记录下kafka集群环境搭建过程, 用来做备忘录 安装 第一步: 点击官网下载地址 http://kafka.apache.org/downloads.html 下载最新安装包 第二步: 解压 t ...

  10. 以php中的自增自自减运算符操作(整型,浮点型,字符串型,布尔型,空类型)数据

    // 环境 // // php版本 // PHP 7.0.33-0+deb9u1 (cli) (built: Dec 7 2018 11:36:49) ( NTS ) // Copyright (c) ...