Java面向对象开发学习笔记(一)

Java面向对象开发

阿里云课程链接

共105课时

课时1 面向对象简介

面向对象是一种程序设计方法,但是并不是所有开发者都认同面向对象,因为很多开发者认为面向对象过于复杂,所以更多人愿意使用函数式编程。

面向对象的前身是面向过程,如果要想笼统地解释这两种开发模型的区别,最好的例子:面向过程是解决问题,而面向对象是模块化设计。对于现在的程序开发,更多情况下就像是汽车组装一样,不同的工厂生产不同的配件。将所有的零件组装在一起,就可以形成一辆汽车,并且当某一个零件坏掉的时候,还可以进行配装。

在面向对象里面实际上还有许多的特点,归结起来有如下三类:

  • 封装性:内部操作对外部而言不可见;
  • 继承性:在上一辈基础上继续发展;
  • 多态性:这是一个最为重要的环节,利用多态性才可以得到良好的设计。

那么在进行面向对象开发的时候也有三个阶段:OOA(面向对象分析)、OOD(面向对象设计)、OOP(面向对象编程)。所有的程序开发原则都离不开实际生活,如果从程序开发角度讲,面向对象最大的特征:可以进行生活的抽象。

课时2 类与对象(认识类与对象)

类与对象是整个面向对象设计的核心所在,也是所有概念的基础。类本身属于引用数据类型,所以类的使用上会牵扯到内存的分配问题。

认识类与对象

人们互相可以听懂对方说话,是因为我们具备共同的特征:我们都是中国人,母语都是汉语,而且身体正常。那么具备这些共同特征的人有很多,就自然是一个群体,而群体的特征就是整个类的定义概念。所谓的类描述的就是共性特征。

任何时候只是依靠共性的特征是无法进行精准描述的,那么就需要一些个性化的特点,才可以描述一个个独立的事物。这样就可以推断出:所谓的类指的就是一个共性的概念,而对象指的是一个具体的可以使用的事物。

那么很明显,在实际的开发过程中,一定要首先产生类,然后才可以产生对象,对象的所有操作行为都一定在类中进行了完整定义。类中没有定义的功能,对象一定无法使用。

类中的组成:方法(操作的行为)、属性(变量,描述每一个对象的具体特点)。

课时3 类与对象(类与对象的定义和使用)

如果在程序之中要进行类的定义,可以使用class关键字完成,定义的语法如下:

class name{
    //所有程序都要求以“{}”作为分界符
    property1 ;
    property2 ;
    function(){}
}

此时的方法不再由主类直接调用,而使通过对象进行调用。

范例:定义类

class Person{
    //定义一个类,类名称每个单词首字母要求大写
    String name; //表示人的姓名
    int age; //表示人的年龄
    public void info(){
        System.out.println("name = " + name + "、age = " + age) ;
    }
}

在这个类中,只是定义了两个属性和一个方法,特别需要注意的是,类中可以定义的属性和方法数量是没有限制的。而且在编写的过程中,每一个方法中的代码尽量不要特别长。

类定义完成之后是不能直接使用的,如果想要使用类那么必须产生对象,而对象的定义分为以下两种语法形式:

  • 声明并实例化对象:类名称 对象名称 = new 类名称();
  • 分步进行对象实例化:
    • 声明对象:类名称 对象名称 = null ;
  • 实例化对象:对象名称 = new 类名称() ;

引用数据类型的最大特征在于对内存的分配操作,只要出现关键字new,就只有一个解释:开辟新内存(内存是不可能无限开辟的,所以这个时候所谓的性能调优调整的就是内存问题)。

范例:声明并实例化对象

public class TestDemo{
    public static void main(String args[]){
        //类名称 对象名称 = new 类名称 ;
        Person per = new person() ; //此时就表示实例化了一个per对象
        per.name = "张三" ; //设置对象中的属性
        per.age = 18 ; //设置对象中的属性
        per.info() ; //调用类中的方法
    }
}

所有对象只有实例化之后才可以真正使用,而对象的使用都是围绕着类进行的,此时有两种形式:

  • 调用类中的属性:对象.属性 = 内容;
  • 调用类中的方法:对象.方法();

以上就实现了一个最基本的类的定义以及对象的使用操作形式。

原文地址:https://www.cnblogs.com/communedefence/p/8506710.html

时间: 2024-10-09 01:06:05

Java面向对象开发学习笔记(一)的相关文章

cocos2dx游戏开发学习笔记3-lua面向对象分析

在lua中,可以通过元表来实现类.对象.继承等.与元表相关的方法有setmetatable().__index.getmetatable().__newindex. 具体什么是元表在这里就不细说了,网上很多介绍,这里主要讲与cocos2dx相关联的部分. 在lua-binding库中extern.lua里,有如下方法: --Create an class. function class(classname, super) local superType = type(super) local c

嵌入式开发学习笔记 ( java - c/c++ :从入门到入门 )

发现放到Blog之后排版全乱套了.. 已经把PDF上传到资源页了  http://download.csdn.net/detail/lyy289065406/8934637 那边排版好看一点...看官们随意吧 >...< · 目 录 导 航 1. 引言 1.1. 编写目的 1.2. 阅读范围 1.3. 声明 1.4. 缩写词/名词解释 1.5. 参考资料 2. 嵌入式开发学习笔记 2.1. 开发环境/测试环境 2.2. 开坑:提要 2.3. 入坑:JNI 2.3.1. navicate 接口定

java/android 设计模式学习笔记(7)---装饰者模式

这篇将会介绍装饰者模式(Decorator Pattern),装饰者模式也称为包装模式(Wrapper Pattern),结构型模式之一,其使用一种对客户端透明的方式来动态的扩展对象的功能,同时它也是继承关系的一种替代方案之一,但比继承更加灵活.在现实生活中也可以看到很多装饰者模式的例子,或者可以大胆的说装饰者模式无处不在,就拿一件东西来说,可以给它披上无数层不一样的外壳,但是这件东西还是这件东西,外壳不过是用来扩展这个东西的功能而已,这就是装饰者模式,装饰者的这个角色也许各不相同但是被装饰的对

Django Web开发学习笔记(1)

一.Python的标准类型 (1)bool型 >>> bool("") False >>> bool(None) False >>> bool(False) False (2)数值型 Python的数值型数据包含两类:int和float型数据,需要注意的是还有一个complex的类型,也就是复数类型 >>> a = complex(1,3) >>> a (1+3j) >>> b

java/android 设计模式学习笔记(10)---建造者模式

这篇博客我们来介绍一下建造者模式(Builder Pattern),建造者模式又被称为生成器模式,是创造性模式之一,与工厂方法模式和抽象工厂模式不同,后两者的目的是为了实现多态性,而 Builder 模式的目的则是为了将对象的构建与展示分离.Builder 模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细地控制对象的构造流程.一个复杂的对象有大量的组成部分,比如汽车它有车轮.方向盘.发动机.以及各种各样的小零件,要将这些部件装配成一辆汽车,这个装配过

【web开发学习笔记】Structs2 Action学习笔记(一)

1.org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter准备和执行 2. <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> url-pattern约定熟成只写/*,没必要写*.action 3. <

【Android开发学习笔记】【第三课】Activity和Intent

首先来看一个Activity当中启动另一个Activity,直接上代码说吧: (1)首先要多个Activity,那么首先在res-layout下新建一个 Other.xml,用来充当第二个Activity的布局文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu

java/android 设计模式学习笔记(12)---组合模式

这篇我们来介绍一下组合模式(Composite Pattern),它也称为部分整体模式(Part-Whole Pattern),结构型模式之一.组合模式比较简单,它将一组相似的对象看作一个对象处理,并根据一个树状结构来组合对象,然后提供一个统一的方法去访问相应的对象,以此忽略掉对象与对象集合之间的差别.这个最典型的例子就是数据结构中的树了,如果一个节点有子节点,那么它就是枝干节点,如果没有子节点,那么它就是叶子节点,那么怎么把枝干节点和叶子节点统一当作一种对象处理呢?这就需要用到组合模式了. 转

黑马程序员-Java面向对象编程学习总结

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- Java面向对象编程学习总结: 重要知识点总结如下: 1,抽象,封装,继承,多态是面向对象程序设计中得四个特点. 2,面向对象得软件开发大体分为:面向对象的分析,面向对象的设计,面向对象的实现. 可概括为如下过程:分析用户需求,从问题中抽