定义类
定义类的过程就是定义类的属性的过程;
类的属性就是累的静态属性的简称,指类内包含的各项数据。

类的服务被称为成员函数或方法。

继承extends
通过定义继承方法,子类可以获得父类的所有属性和方法

接口implements
说明当前类中实现了哪个接口定义的功能和方法
是Java语言中实现多重继承的一种机制

类的修饰符分为:
访问控制符
抽象类说明符
最终说明符

类的属性:
描述了类内部的信息,又称为类的静态属性
类属性为简单变量

【修饰符】 变量类型 变量名【=变量初值】
【修饰符】 类名 对象名 【=new 类名(实际参数列表)】

若使用另一个类的对象作为当前类所定义的类的属性,
要保证该对象所在的类在当前类中是可已被当前类所引用的

类属性的修饰符包括:
访问控制符
静态修饰符static
最终修饰符final
易失修饰符volatile
过渡丢师傅transient

类的方法(成员函数)
用来规定类属性上的操作
实现类内部功能的机制
也是类与外界交互的窗口

声明方法的语法:
【修饰符】返回值类型 方法名(参数列表)
Trows 例外名1,例外名2,...
{
方法体:
局部变量声明;
语句序列;
}

方法的修饰符包括:
访问控制符
静态修饰符static
抽象修饰符abstract
最终修饰符final
同步修饰符synchronous
本地修饰符native

类的构造函数

特殊之处:
构造函数的方法名与类名相同
构造函数没有返回类型
构造函数的主要作用是完成对类对象的初始化工作

在创建一个类的新对象的同时,系统会自动调用该类的构造函数为新对象初始化

Java在声明类是,可以不定义构造函数,系统会自动为该类生成一个默认的构造函数
此时这个构造函数的名字与类名相同,没有任何形式参数,也不完成任何操作

类的访问控制符只有一个public
属性和方法的访问控制符有:
public

private
protected
private protected

对于同一个包中的类可以不需任何说明,方便的互相访问和引用

在不同包中的类,只有他们都声明为public时,然后再在程序头部声明import后才可以被访问和引用相应的类。

publici修饰的类的属性称为公共属性
如果公共属性属于一个公共类,则可以被所有的其他类使用

public修饰符会造成安全性和数据封装性下降,应尽量减少public属性的使用

缺省访问控制符规定该类只能被同一个包中的类访问和引用,而不可以被其他包中的类引用,这种特性称为包访问性。

类内的属性和方法如果没有访问控制符来限定,也说明他们具有包访问性,可以被同一个包中的其他类所访问和调用

用private修饰的属性或方法只能被该类自身所访问和修改,而不能被任何其他类,包括该类的子类来获取和引用。
procted修饰的属性可以被该类自身和包中的类访问
public可以被任意访问

静态属性
被static修饰的属性称为静态属性
静态属性是一个公共的存储单元
任何一个类的对象访问它时取到的都是相同的值
任何一个类的对象去修改它时,都是在对同一个内存单元做操作。

static修饰符修饰的属性是属于类的公共属性
static修饰符修饰的方法是属于整个类的方法
不用static修饰符修饰的方法是属于某个具体对象或实例的方法

声明一个方法的static至少有三重含义
调用这个方法时,应该使用类名做前缀,而不是某一个具体的对象名
非static的方法是属于某个对象的方法,在这个对象创建时对象的方法在内存中拥有自己的专用代码段
而static的方法是属于整个类的
它在内存中的代码段将随着类的定义而分配和装载,不被任何一个对象专有
static方法只能处理static类型的数据

静态初始化器
石油关键字static引导的一对大括号括起的语句组

静态初始化器与构造函数的区别:
构造函数是对每个新创建的对象初始化,而静态初始化器是对每个类进行初始化
构造函数是在用new运算符产生新对象时由系统自动执行,而静态初始化器则是在它所属的类加载入内存时由系统调用运行的
不同于构造函数,静态初始化器不是方法,没有方法名,返回值和参数列表

抽象类
当一个类被生命为abstract时,这个类被称为抽象类
所谓抽象类就是没有具体实例对象的类
抽象类是它所有子类的公共属性的集合
使用抽象类的一大优点就是可以利用这些公共属性来提高开发和维护程序的效率

最终类,最终属性,最终方法,终结器
最终类
如果一个类被final修饰符所修饰和限定,说明这个类不可能拥有子类
最终属性
final就是用来修饰常量的修饰符,一个类的成员变量如果被声明为final,那么它的取值在程序的执行过程中都不会改变,也就是一个常量

用final修饰符说明常量时:
需要说明常量的数据类型
需要同时指出常量的具体取值
因为所有类的对象的常量成员,其数值都固定一致,为了节省空间,常量通常都被声明为static

final修饰符所修饰的类方法,是功能和内部语句都不能被更改的最终方法,即是不能被当前类的子类重载的方法
final方法固定所对应的具体操作,防止子类对父类关键方法的错误的重定义,保证了程序的安全性和正确性

所有已被private修饰符限定为私有的方法,以及所包含在final类中的方法,都被缺省的认为是final的

终结器
终结器是回收对象时执行的方法
protected void finalize(){}
终结器是一个名为finalize的方法,没有产生列表和返回值

volatile修饰符
被volatile修饰的类的属性可能同时被几个线程控制和修改
通常用来修饰受外部输入的属性

Java的面向对象属性的更多相关文章

  1. Java自学-面向对象 属性

    Java类的属性 一个英雄有姓名,血量,护甲等等状态 这些状态就叫做一个类的属性 步骤 1 : 属性的类型 属性的类型可以是基本类型,比如int整数,float 浮点数 也可以是类类型,比如Strin ...

  2. java的面向对象

    Java是1995年诞生.前身oak,后来改名为java. 面向对象的编程思想:对象是万事万物. 对象是由两部分组成的:属性和方法 1:属性是对象的静态特性(名词) 2:方法是对象的动态特性(动词) ...

  3. java学习面向对象之异常之一

    一.异常的概述: 什么是异常?在我们编写java程序的时候,会出现一些问题,比如内存溢出啊或者数组索引超出最大索引啊,这些编程当中出现的这些个问题就是异常.但是异常也分为可以处理的和不可以处理的.比如 ...

  4. Java之面向对象相关问题集

    面向对象的特征有哪些方面  1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解所有问题,而仅仅是选择当中的一部分,临时不用部分细节. 抽 ...

  5. Java与面向对象

    一.面向过程的思想和面向对象的思想 面向对象和面向过程的思想有着本质上的区别, 作为面向对象的思维来说,当你拿到一个问题时,你分析这个问题不再是第一步先做什么,第二步再做什么,这是面向过程的思维,你应 ...

  6. java基础面向对象之类与对象

    java基础面向对象之类与对象 2017-01-14 1.面向对象的基本概念 以一种组建化的形式进行代码设计 1)在面向对象程序设计中包含有如下几种特性 •封装性:保护内部结构的安全性 •继承性:在已 ...

  7. Java与面向对象之随感(2)

    我们知道Java语言的一大特性就是相比于c语言和c++语言,其更加安全.那么Java安全性的一个重要保证就是它取消了指针,并且坚决反对数组的出界(c++对当数组超出上限但是还进行读写操作时允许的!), ...

  8. 第二十七节:Java基础面向对象-静态,单例模式,继承详情知识点

    前言 Java基础面向对象-静态,单例模式,继承详情知识点.静态-static关键字,static变量,静态代码块,代码块(不加静态),对象创建过程,单例模式,继承. 静态-static关键字 // ...

  9. Java的面向对象(初涉)

    Java的面向对象(初涉) 面向对象的分析根据抽象关键的问题域来分解系统.面向对象的设计是一种提供符号设计系统的面向对象的实现过程,它用非常接近实际领域术语的方法把系统构造成"现实世界&qu ...

随机推荐

  1. Cisco的动态Nat、PAT

    Lab_C(config)# interface Ethernet0/0  ip address 192.168.30.2 255.255.255.0 router rip  network 172. ...

  2. 贡献python prim多源最短路搜索算法 numba加速方法的demo和总结

    1.测试两个算法 #coding:utf-8 import time import numba import numpy as np ''' 使用numba加速总结, (1).在数值计算比如int f ...

  3. C++ 11的移动语义

    目录 可拷贝和可移动的概念 移动构造函数和移动赋值函数 小结移动构造和移动赋值 std::move() 使用 std::move 实现一个高效的 swap 函数 Move and swap 技巧 参考 ...

  4. C学习笔记-makefile

    除非最简单的项目,任何一个商业项目都会包含多个源代码,而且在编译的时候会有很长很复杂的指令,为了编译的简单可行,makefile由此而生,在编译时候直接输入make便会按照makefile里面的规则编 ...

  5. elk logstash Managing Multiline Events

    1.Java程序的日志特征,logstash 正为此准备好了 codec/multiline 插件! 有时候应用程序会抛异常,就存在着如何合并多行信息的问题,我这里做的配置就是如果当前行是以‘空格’, ...

  6. Linux实用技巧

    1. linux共享内存的查看和释放 查看共享内存命令:ipcs -m 删除共享内存明明:ipcrm -m [shmid] [negivup@negivup mycode]$ ipcs -m  查看共 ...

  7. java中的12种锁

    java中很多地方会涉及到锁,比如java代码并发场景,DB中的并发场景,分布式中的锁....你知道几种呢?下面来看看常见的11种锁 1. 乐观锁/悲观锁 这两个概念是人们对java中各种锁总结提出的 ...

  8. DLL的创建与使用

    一.动态链接库(DLL) 动态链接库提供了一种方法,使进程可以调用不属于其执行代码的函数.函数的可执行代码位于一个.dll文件中,该文件包含一个或多个已被编译.链接并使用它们的进程分开存储的函数. 优 ...

  9. luogu P4365 [九省联考2018]秘密袭击coat

    luogu 这里不妨考虑每个点的贡献,即求出每个点在多少个联通块中为第\(k\)大的(这里权值相同的可以按任意顺序排大小),然后答案为所有点权值\(*\)上面求的东西之和 把比这个点大的点看成\(1\ ...

  10. Docker简易使用手册

    1. Docker介绍 Docker中文社区文档 Docker 是一个开源的软件部署解决方案. Docker 包括三个基本概念: 镜像(Image) Docker的镜像概念类似于虚拟机里的镜像,是一个 ...