第四节:详细讲解Java中的类和面向对象思想
前言
大家好,给大家带来详细讲解Java中的类和面向对象思想
的概述,希望你们喜欢
类和面向对象
在Java中怎样理解对象,创建对象和引用;什么是引用,对于基础学习的同学,要深入了解引用。示例: String str = new String();
;其中str为引用,并创建了一个对象。
引用
- 如果一个变量的类型是类的类型,不是基本数据类型,那么这个变量就叫做引用。
对 Person person = new Person();
这个的理解:
person叫做引用,new Person() 为创建了一个对象, " = " 表示左边的引用指向右边的对象。
面向对象思想
面向过程:就是站在过程的角度去思考问题,功能的执行过程,就是我们在实现功能的过程,类似方法,使用时,调用该函数就成。
面向对象:一种基于面向过程的编程思想,面向对象,就是站在对象的角度去思考问题。
面向对象的三大特征
继承:就是子类继承父类,子类是一种特殊的类,可以直接或间接的获取父类的成员。
封装:就是将对象的实现的细节隐藏起来,通过公共的方法向外暴露对象的功能。
多态:多态就是把子类的对象赋值给父类的变量。
对象
对象的定义:状态和行为
一切事物都可以认为是对象,具有状态和行为。
类
类是对象的模板,类是构建对象的基础,对象的抽象是类,类的具体化则是对象,在代码中我们常说创建一个类,并在类中实例化对象。
对象的创建及其使用
在程序中,先有类,再有对象
- 创建对象: 类 对象名 = new 类名();
- 对象调用方法: 对象名.方法名();
- 匿名对象:就是该对象没有名字,创建对象时,没有赋给一个变量
匿名对象的示例:new Person();
匿名对象只能被使用一次,由 new Person()
就可以知道,创建后无法再次使用。
一个引用,多个对象
//当创建了一个引用,再把该引用指向另一个对象
Personone one = new Personone();
one = new Persontwo();
//代表该引用指向了另一个对象,那么之前的对象将不被该引用指向,那么之前的对象会被Java的回收机制处理
继承
在现实世界当中,继承就是儿子得到老子的东西,在面向对象的世界当中,继承就是一个类得到了另一个类当中的成员变量和成员方法
Java只支持单继承,不允许多继承,继承是为了减少重复代码
使用super调用父类构造函数的方法
class Person{
String name;
int age;
Person(){
System.out.prinltn("Person的无参数构造函数");
}
Person(String name,int age){
this.name=name;
this.age=age;
System.out.println("Person有参数的构造函数");
}
void eat(){
System.out.println("定义吃饭的方法");
}
}
class Student extends Person{
//子类继承父类
Student(){
//父类
super();
System.out.println("Student的无参数构造函数");
}
Student(String name,int age,int id){
super(name,age);
this.id=id;
}
}
//测试类
class Test{
public static void main(String args[]){
Student student = new Student();
}
}
重写和重载
- 重载:方法名一样,但是参数类型不一样(不同的参数个数,不同的参数类型,不同的参数次序)
- 重写:子类中定义的某个方法与其父类有相同的名称和参数,则该方法被重写了
构造方法
public class Person{
Person(){
//构造方法
}
public static void main(String[] args){
Person person = new Person();
}
}
四种访问修饰符
- private 私有的
- default 不写
- protected 受保护的
- public 公共的
类属性,对象属性
类属性: 叫做静态属性
对象属性: 叫实例属性,非静态属性
类方法,对象方法
类方法: 叫做静态方法
对象方法: 叫实例方法,非静态方法
对象属性初始化,类属性初始化
对象属性初始化3种
- 声明该属性的时候初始化
- 构造方法中初始化
- 初始化块
类属性初始化2种
- 声明该属性的时候初始化
- 静态初始化块
书籍
Core Java
Effective Java
Thinking in Java
First Head Java
总结
- 本文讲了详细讲解Java中的类和面向对象思想,如果您还有更好地理解,欢迎沟通
- 定位:分享
Android
&Java
知识点,有兴趣可以继续关注
第四节:详细讲解Java中的类和面向对象思想的更多相关文章
- 第五节:详细讲解Java中的接口与继承
前言 大家好,给大家带来详细讲解Java中的接口与继承的概述,希望你们喜欢 什么是接口(interface) 接口中的方法都是抽象方法,public权限,全是抽象函数,不能生成对象 interface ...
- 第九节:详细讲解Java中的泛型,多线程,网络编程
前言 大家好,给大家带来详细讲解Java中的泛型,多线程,网络编程的概述,希望你们喜欢 泛型 泛型格式:ArrayList list= new ArrayList(); ArrayList list= ...
- 第七节:详细讲解Java中的日期,java.util.date
前言 大家好,给大家带来详细讲解Java中的日期,java.util.date的概述,希望你们喜欢 类Date Java.lang.Object->java.util.Date public c ...
- 第六节:详细讲解Java中的装箱与拆箱及其字符串
前言 大家好,给大家带来详细讲解Java中的装箱与拆箱及其字符串的概述,希望你们喜欢 装箱与拆箱 封装类有:Byte , short , Integer , Character , long , Fl ...
- 第八节:详细讲解Java中的异常处理情况与I/O流的介绍以及类集合框架
前言 大家好,给大家带来详细讲解Java中的异常处理情况与I/O流的介绍以及类集合框架的概述,希望你们喜欢 JAVA 异常 try...catch...finally结构的使用方法 class Tes ...
- 详细讲解JAVA中的IO流
一.流的概念 流(stream)的概念源于UNIX中管道(pipe)的概念.在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备.外部文件等. ...
- 【转】详细讲解Java中log4j的使用方法
转载地址:http://www.233.com/Java/zhuangye/20070731/142625631.html 1.Log4j是什么? Log4j可以帮助调试(有时候debug是发挥不了作 ...
- 详细讲解Java中方法的重载和重写
首先讲讲方法的重载: Java的重载就是在类中可以创建多个方法,它们具有相同的名字,但是却有不同的参数. 判断是否重载只有两个条件: 1)相同的方法名 2)不同的参数 具体为: A.方法参数类型不同 ...
- 详细讲解nodejs中使用socket的私聊的方式
详细讲解nodejs中使用socket的私聊的方式 在上一次我使用nodejs+express+socketio+mysql搭建聊天室,这基本上就是从socket.io的官网上的一份教程式复制学习,然 ...
随机推荐
- python3 requestsGET请求传参
GET方式传参方式一: import requests url = 'http://www.baidu.com/s?page=2' # 使用?携带参数 r = requests.get(url) pr ...
- 修改Myeclipse的文件默认为UTF-8编码
一.工程编码默认调整 windows->Preferences...打开"首选项"对话框, 左侧导航树,导航到general->Workspace,右侧 Text fi ...
- Tigase-02 tigase-server7.1.0使用git 克隆下来,并在eclipse 上运行调试
继 Tigase-01 使用spark或spi登录Tigase服务器,这节说明下使用 eclipse git克隆 tigase-server7.1.0,并运行调试!最近有不少同学尝试去git clon ...
- dskinlite(uieasy mfc界面库)使用记录3:绘制动态元素(按钮控件通过隐藏方式修改图片显示)
效果图: 分别是:正常,正常鼠标悬停,按下,按下鼠标悬停 XML代码: 75,76行定义了一个image,注意id和index属性 初始化代码: click代码: 147,148,153,154:通过 ...
- centos 添加右键在终端打开
yum -y install nautilus-open-terminal
- 如何在SpringBoot项目中使用拦截器
相比springmvc,springboot中拦截器不需要在xml中配置,只需定义拦截器类 implements HandlerInterceptor 和拦截器拦截路径的配置类extends WebM ...
- 原来这就是 UI 设计师的门槛
本文主要分享 UI 设计师入行的一些个人经验指南,希望可以带给新入行业的设计师一点帮助! 写在前面 随着互联网的不断发展,特别是移动互联网的不断成熟,视觉设计师也进行了迭代与细分.衍生出的 UI 设计 ...
- oracle ebs
甲骨文公司的应用产品,全称是Oracle 电子商务套件(E-Business Suit),是在原来Application(ERP)基础上的扩展,包括ERP(企业资源计划管理).HR(人力资源管理).C ...
- vue + spring boot + spring security 前后端分离 携带 Cookie 登录实现 只写了个登录
最近想弄一下vue 所以就自己给自己找坑入 结果弄的满身是伤 哈哈哈 首先我说下 前后端分离 跨域请求 我在网上找了一些 可是都是针对于 spring boot 的 我自己还有 securi ...
- VS2015配置OpenCV,使用mfc摄像头程序测试
转自:https://blog.csdn.net/Lee_Dk/article/details/80466523 这只是介绍了如何加入OpenCV,怎么查找OpenCV请看出处. 新建一个项目.找到属 ...