面向对象概念-类与对象的关系

封装:指隐藏对象的属性和实现细节,仅对外提供公共访问方式,private-构造方法/构造器-this关键字-static关键字(javadoc制作工具类) -代码块

继承:方法重写-super-子类实例化过程-final-抽象类-接口

多态:

1.1 面向对象概念Object-Oriented

1.1.1 理解面向对象

面向对象是相对面向过程而言
面向对象和面向过程都是一种思想
面向对象是基于面向过程的

1.1.2 面向对象的特点

可以将复杂的事情简单化
将程序员从执行者转换成了指挥者
完成需求时:
先要去找具有所需的功能的对象来用。如果该对象不存在,那么创建一个具有所需功能的对象,这样简化开发并提高复用

    1. 开发的过程:其实就是不断的创建对象,使用对象,指挥对象做事情
    2. 设计的过程:其实就是在管理和维护对象之间的关系。

面向对象的特征:

    • 封装(encapsulation)
    • 继承(inheritance)
    • 多态(polymorphism)

1.2类与对象的关系

1.2.1类与对象的定义

使用计算机语言就是不断的在描述现实生活中的事物。java中描述事物通过类的形式体现,类是具体事物的抽象,概念上的定义。对象(实例)即是该类事物实实在在的个体
不同Dog对象抽象出Dog类。

1.2.2类的定义

生活中描述事物无非就是描述事物的属性和行为
如:狗有颜色,年龄等属性,有跑,叫等行为
Java中用类class来描述事物也是如此

    • 现实世界中事物的属性:对应类中的成员变量
    • 现实世界中事物的行为:对应类中的成员方法

定义一个类,其实就是在定义类中的成员(也就是成员变量和成员方法)
public class Dog{
public String color; //成员变量
public void eat(){...} //成员方法
}

类成员的写法:

    • 成员变量:

    和之前定义变量的规则一样
    写在类中,成员方法的外边

    • 成员方法:

    和之前定义方法的规则一样

1.2.3成员变量和局部变量的区别

成员变量(目前都是实例变量):
  成员变量定义在类中,作用范围是整个类
  实例变量随着对象的创建而存在,随着对象消失;存在于对象所在的堆内存中
  成员变量有默认初始化值(0/0.0/false/null)

局部变量:
  局部变量定义在局部范围内:方法内,形参上,代码块内
  局部变量存在于栈内存中
  方法或者语句执行完,变量空间自动释放
  局部变量没有默认初始化值,除了形参,使用之前必须赋值

1.2.4创建对象,使用对象

类定义:

//类定义
class Car{
int year;String color;
public void run(){
System.out.println(“车在跑...”);
}
public void turnTo(String direction){
System.out.println(“转向:”+direction);
}
}

类使用:

public class CarDemo{ //想要运行main方法,专门放入一个测试类中
public static void main(String[] args){
Car c = new Car();//建立对象
c.color = "black";
c.run();//调用对象的方法
}
}

1.2.5对象的内存结构

一个对象的内存结构
重点:
1.方法区的概念
2.成员变量的初始化

两个变量指向一个对象的内存结构
重点:多个变量指向同一个对象(多对一关系)

同类两个对象的内存结构
重点:方法的共用

1.2.6匿名对象

匿名对象是对象的简化形式
匿名对象两种使用情况:
  1.对象方法仅进行一次调用时,多次调用不适合
  2.匿名对象可以作为实际参数进行传递(可作参)
  3.作为返回值返回
使用匿名对象的好处:
  1.简化写法,不必定义变量接住对象引用
  2.对象用完之后就变成垃圾内存,可以被垃圾回收器回收

java面向对象1-面向对象概念的更多相关文章

  1. java面向对象的基本概念

    面向对象的基本概念 这里先介绍面向对象程序设计的一些关键概念,并开始使用类,你需要学习一些术语,我们尽量用比较浅显的语言来介绍,因为这些内容都比较重要,所以希望大家好好好理解. 一.什么是对象和面向对 ...

  2. java学习之面向对象概念

    思考的两种方式: 举例: 把大象放到冰箱里 一.面向过程 :[打开冰箱->把大象放里面->关上冰箱门]面向过程注重的是过程,也就是(动作[函数]),然后按照动作依次去执行就好了. 代表语言 ...

  3. [Java入门笔记] 面向对象编程基础(一):类和对象

    什么是面向对象编程? 我们先来看看几个概念: 面向过程程序设计 面向过程,是根据事情发展的步骤,按进行的顺序过程划分,面向过程其实是最为实际的一种思考方式,可以说面向过程是一种基础的方法,它考虑的是实 ...

  4. 【译文】 C#面向对象的基本概念 (Basic C# OOP Concept) 第一部分(类,对象,变量,方法,访问修饰符)

    译文出处:http://www.codeproject.com/Articles/838365/Basic-Csharp-OOP-Concept 相关文档:http://files.cnblogs.c ...

  5. Java是一门面向对象编程语言的理解

    Java是一门面向对象编程语言. 不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征. Java语言作为静态面向对象编程语言的 ...

  6. Java基础-初识面向对象编程(Object-Oriented-Programming)

    Java基础-初识面向对象编程(Object-Oriented-Programming) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Java是一门面向对象的程序设计语言.那么什 ...

  7. Java复习5.面向对象

    Java 复习5面向对象知识 20131004 前言: 前几天整理了C++中的面向对象的知识,学习Java语言,当然最重要的就是面向对象的知识,因为可以说Java是最正宗的面向对象语言,相比C++,更 ...

  8. 已看1.熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的Java API,包括集合框架、多线程(并发编程)、I/O(NIO)、Socket、JDBC、XML、反射等。[泛型]\

    1.熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的Java API,包括集合框架.多线程(并发编程).I/O(NIO).Socket.JDBC.XML.反射等.[泛型]\1* ...

  9. Java编程基础-面向对象(中)

    本章承接Java编程基础-面向对象(上)一文. 一.static关键字 在java中,定义了一个static关键字,它用于修饰类的成员,如成员变量.成员方法以及代码块等,被static修饰的成员具备一 ...

  10. Java入门基础—面向对象开发

    Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征.Java语言作为静态面向对象编程语言的代表 ...

随机推荐

  1. 细说Linux下的虚拟主机那些事儿

    细说Linux下的虚拟主机那些事儿 我们知道Linux操作系统是目前在服务器上应用广泛的操作系统.在Linux操作系统下的虚拟主机是不是就是我们常说的Linux虚拟主机呢?其实从专业方面说并不是,它是 ...

  2. java:Oracle(事务,分页,jdbc)Mysql(jdbc)

    1.事务:transaction -- 事务开启的唯一条件就是:对数据库进行增,删,改的时候 -- 换句话说,对数据进行增删改以后,必须要执行提交或者回滚 -- 事务就是把数据库中的数据从一致状态转换 ...

  3. TypeError: reduction operation 'argmax' not allowed for this dtype

    这个错误真的tmd伤脑筋.我用idxmax函数去求series类型的最大值的索引,结果明明是下面这种数据, 无论我如何pint他的shape,type,他怎么看都是一个满足idxmax函数要求的参数类 ...

  4. 【Python开发】【神经网络与深度学习】如何利用Python写简单网络爬虫

    平时没事喜欢看看freebuf的文章,今天在看文章的时候,无线网总是时断时续,于是自己心血来潮就动手写了这个网络爬虫,将页面保存下来方便查看   先分析网站内容,红色部分即是网站文章内容div,可以看 ...

  5. 第八周课程总结-实验报告六(Java异常)

    理解异常的基本概念: 掌握异常处理方法及熟悉常见异常的捕获方法 实验要求 练习捕获异常.声明异常.抛出异常的方法.熟悉try和catch子句的使用. 掌握自定义异常类的方法 实验内容 编写一个类,在其 ...

  6. 【Linux 网络编程】字节序和地址装换

    (3)字节序    <1>大端字节序        最高的有效位存储于最低内存地址处,最低有效位存储于最高内存地址处.    <2>小端字节序        最高的有效位存储于 ...

  7. ORA-01406:提取的列值被截断 ; SQL Server :将截断字符串或二进制数据

    oracle 数据库可以正常连接,表数据也可以正常读取, 但在程序中相同的位置,有时会报错,有时不会报错,有的电脑会报错,有的不会 报错内容为 ORA-01406:提取的列值被截断 查了网上提供的一些 ...

  8. PHPStorm运行PHP代码

    1.完成php代码后,点击空白处,右上角会出现 chrome.firefox等浏览器的图标,选择一个电脑上已有图标 2.默认情况下浏览器会提示“bad gateway”,此时需要配置phpstorm对 ...

  9. selenium之京东商品爬虫

    #今日目标 **selenium之京东商品爬虫** 自动打开京东首页,并输入你要搜索的东西,进入界面进行爬取信息 ``` from selenium import webdriver import t ...

  10. Python进阶编程 面向对象

    一.面向对象 1.1面向对象的基本格式 class 类名: def 方法名(self): print(123) return 123 def 方法名(self): print(123) return ...