方法的定义:方法就是一段可重复调用的代码段
格式:
访问修饰符 返回值类型(可以是void、基本数据类型、引用数据类型) 方法名(){
方法主体

}
注意:void返回值类型不需要返回值,而其他类型都需要有返回值。

方法的重载:方法名称相同,但是参数的类型和个数不同,通过传递参数的个数和类型来完成不同功能的操作。

类和对象的关系:类是对某一事物的描述,是抽象的、概念上的意义,对象是实际存在的该类事物的每一个个体,也被称为实例
类的声明格式:
class 类名称
{
属性
方法

}
类名 对象名=null//声明
对象名=new 类名()//实例化操作
类名 对象名=new 类名//声明并实例化
内存划分:
类名 对象名:是在栈内存开辟了一个空间
对象名指向对应的堆内存空间
new 类名():使用new开辟的堆内存空间
开辟的堆内存中的属性都是默认的值,例如:
String 的默认值是null int的是0等等;
经过对属性的赋值后堆内存中的值才会改变
在没有私有化属性和方法时可以使用:
对象.属性//赋值
对象.方法//调用
注意:如果没有进行new 类名()操作就会出现空指针异常:
Exception in thread "man" java.lang.NullPointerExcetion
面向对象基础了解:
程序的发展历程:面向过程、面向对象
什么是面向过程和面向对象:比如说要做一个盒子,面向过程是:不想去做一个什么样子的盒子,随机取工具来做。面向对象是:先想好要做一个什么样子的盒子,在找对应的工具来做
面向对象的三大特征:
1.封装性
对外部不可见
比如说电视:电视机有外壳,而外壳的作用就是为了保护电视机内部零件,而电视通常在外部留有按钮方便人们来使用,而程序也是这样会留下一些接口方便我们使用。
2.继承
扩展类的功能
例如:你父亲有1000W当你父亲老去了,他只有你一个儿子,他的财富积累过程就终结了,而你继承了你父亲的1000W,你的财富积累就会从1000W开始积累而且不会出现亏损的现象
3.多态性
方法的重载
对象的多态性
方法的递归调用:
1.方法递归调用是一种特殊的调用形式,就是方法自己调用自己
递归调用→方法(参数)
↗ N ↓ Y(递归调用的出口)
执行语句←———满足结束条件———→返回调用处
代码如下:
public class Demo{
public static void main(String[] args){
System.out.println(addNum(100));
}
public static int addNum(int n){
if(addNum==1){//对于本程序来说addNum==1就是程序出口
return 1;
}else{
return n+addNum(n-1)
}
}
封装性:
保护当前类的某些属性和方法不被外部类所看见
封装性的实现:
为属性和方法进行封装是通过关键字private进行声明的
实现该属性的set和get方法,为外部所访问
匿名对象:
匿名对象就是没有名字的对象,如果程序中只使用一次该对象,就可以使用匿名对象的方式
格式: new 类名.方法名()(注意:只适合使用一次的对象)
构造方法:
格式:
访问修饰符 类名称(){
程序语句
}
注意:1.构造方法名称与类名称相同
2.构造方法没有返回值类型
构造方法主要是为了类中的属性初始化
每个类实例化之后都会调用构造方法,如果没有构造方法,程序在编译的时候就会创建一个什么都不做的无参的构造方法
构造方法的重载:
方法名称相同,但是参数的类型和个数不同,通过传递参数的个数和类型来完成不同功能的操作。

引用传递:

this关键字:
1.表示类中的属性和调用方法
this.属性名(当前类中的属性) this.方法名(当前类的方法)
2.调用本类中的构造方法
this()(调用无参的构造方法,注意this()必须放在构造方法的首行)
3.表示当前对象

继承:
继承的基本概念:扩展父类的功能
例如:你父亲有1000W当你父亲老去了,他只有你一个儿子,他的财富积累过程就终结了,而你继承了你父亲的1000W,你的财富积累就会从1000W开始积累而且不会出现亏损的现象
JAVA中使用extends关键字完成继承
class 子类 extends 父类{}
JAVA中的继承限制:
1.只允许单继承
2.子类不能直接访问父类的私用成员,如果要调用只能通过get和set来调用
子类对象的实例化过程:
1.子类对象实例化之前必须要调用父类中的构造方法,之后调用子类的构造方法
↑→先调用父类的构造方法→调用父类构造
实例化子类对象
↓→在调用子类的构造方法→调用子类构造
JAVA中方法重写和super关键字:
1.在继承中,也存在着重写的概念,其实就是子类中定义了与父类中的同名的方法
2.定义:
方法名称相同,返回值类型相同,参数相同
3.重写限制:
被子类重写的方法不能拥有比父类方法更严格的访问权限
4.访问权限:
private<default<public其中,default是默认的

super关键字:
super强行调用父类中的方法

JAVA中重写与重载的区别:
重载(Overloading)定义:方法名称相同,参数的类型或个数不同对权限没有要求,范围是在同一个类中
重写(Overriding)定义:方法名称相同,返回值类型相同、参数的类型相同,
被重写的方法不能拥有比父类方法更严格的访问权限,范围是在继承类中

抽象类和接口
final关键字的使用
final在JAVA中被称为完结器,表示最终的意思
final能声明类、方法、属性
使用final声明的类不能被继承
使用final声明的方法不能被重写
使用final声明的变量被称为常量且不能被修改
抽象类
1.抽象类概念:
包类个抽象方法的类就是抽象类
2.抽象方法:
声明而未被实现的方法,抽象方法必须使用abstract关键字来声明
3.抽象类被子类继承,子类(如果不是抽象类)必须重写抽象类中的所有抽象方法
4.定义格式 abstract class className(){
属性
方法
抽象方法
}
5.抽象类不能被直接实例化,要通过其子类进行实例化

转载于:https://www.cnblogs.com/yckv/p/4808867.html

JAVA 面向对象的一些基础理解相关推荐

  1. Java 面向对象:static的理解

    Java 面向对象:static的理解以及各个代码块的运行顺序 一.static关键字 static修饰方法--称为静态方法,可以直接通过类名调用 static修饰变量--称为静态变量,能被类中所有实 ...

  2. Java 面向对象:多态的理解

    Java 面向对象:多态的理解 一.多态的定义 一个对象的实际类型是确定的,但可以指向引用对象的类型可以有很多(父类,有关系的类) 操作符的多态 +可以作为算数运算,也可以作为字符串连接 类的多态 父 ...

  3. Java 面向对象:重写的理解

    Java 面向对象:重写的理解 一.重写的概念: 子类可以继承父类的对象方法 在继承后,重复提供该方法,就叫做方法的重写,又叫覆盖 override 二.实例: 1. 父类Mi10,提供SOC的打印方 ...

  4. Java面向对象三大特征的理解

    面向对象三大特征的理解 初始理解 封装 继承 多态 初始理解 其实这些知识很早就有接触,而且一些概念也牢记于心了.自己叙述面向对象的特征会是这样的: 面向对象的三大特征是封装.继承和多态.封装是对代码 ...

  5. java面向对象编程思想的理解

    1.我们总说java是一门面向对象编程的语言,那什么是面向对象呢? 我是这样理解的,对象是事物存在的实体,如,猪.狗,花早等都是对象,对象由两部分组成.面向对象编程的三大特点:继承,多态,类是封装对象 ...

  6. java 面向对象原则_Java基础:面向对象六大原则

    本文主要介绍了面向对象六大原则. 单一职责原则(Single-Resposibility Principle). "对一个类而言,应该仅有一个引起它变化的原因."本原则是我们非常熟 ...

  7. Java 面向对象:接口的理解

    接口的基础语法 一.接口怎么定义,语法是什么? public interface MyMath {double PI = 3.1415926;int sum(int a, int b);int sub ...

  8. Java 面向对象:继承的理解

    继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模 1.extands的意思是"扩展".子类是父类的扩展 2.Java中类只有单继承,没有多继承! 3.继承是类和类之间的一 ...

  9. JAVA面向对象:相关基础知识(带包编译--权限修饰符--内部类)

    目录 1.带包编译 2.权限修饰符 3.内部类 1.带包编译 解决使用notepad++ 等文本编辑器编写的java类中如果需要 package 的解决方案: 手动式:手动建包,.java文件放在包外 ...

最新文章

  1. 颠覆性技术的兴起及其影响
  2. 第9章 数据字典(选项)管理
  3. 头条+腾讯 双杀面经(NLP实习)
  4. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1091:求阶乘的和
  5. 2018-2019-2 20165221 【网络对抗技术】-- Exp9 Web安全基础
  6. 客户端浏览器Chrome过早断开连接导致Nginx报400错误的解决办法
  7. DedeCMS V5.7模块MVC框架基本说明
  8. 如何避免量化交易策略模型过度拟合
  9. TVS防护电路的典型应用
  10. ARP报文头部格式和请求流程
  11. python3 解决除法中循环小数计算并判断循环体
  12. ngrinder启动项目时报错Error creating bean with name ‘emf‘ defined in org.ngrinder.infra.config.DatabaseConf
  13. Excel教程视频《Excel大神上分攻略》50个工作场景,从案例到实践
  14. 天津大学软件学院 研究生学位申请的学术成果要求
  15. 获取农历节日的公共方法
  16. 服务器网络适配器多路传送器协议,win8系统开启Microsoft网络适配器多路传送协议的具体方法...
  17. JavaScript循环语句的性能问题
  18. java开源线程池_线程池 - Java 并发性和多线程 - UDN开源文档
  19. react的props验证
  20. SQL如何从字符串截取指定字符(LEFT、MID、RIGHT三大函数)

热门文章

  1. 你是农村人吗,小时候放过牛吗,都有哪些好玩的趣事?
  2. 美元为什么能够无限超发?
  3. 基金:能赚大钱的人往往会在3个方面谨慎
  4. 2021年的电商,要怎么做,才能赚钱呢?
  5. 想知道你能不能挣到大钱吗?
  6. According to a report from Bleeping Computer
  7. 构建azure对话机器人_如何在5分钟内使用Azure创建聊天机器人
  8. filestream_SQL Server FILESTREAM内部概述
  9. export和export default的区别 1
  10. SQLServer通过链接服务器调用Oracle 存储过程