面向对象的热身

一、   类和对象

1、        如何分析类

a)      通过一段描述性的文字,如何分析类

i.              描述性文字中,用【名词】表示

ii.              找出隐藏的【名词】

b)      分析类中的成员:属性、方法

i.              属性,【名词】或【形容词】表示

ii.              方法,【动词】表示

2、        编写代码,正确定义类及类的成员(属性、方法)

a)      创建类——class关键字定义类

b)      属性—— public 数据类型 属性名;

c)       方法

public 方法的返回类型 方法名(数据类型 变量名){

…………………………….方法体

}

l  方法根据是否有参数:

分为【无参数的】和【有参数的】方法

l  方法根据返回类型分为:

有返回类型和无返回类型(void)

方法的返回类型:基本数据类型    (int\double\char\String\boolean)、数组、对象

3、        如何创建类的对象?

类名 对象名=new 类名();

4、        如何访问类的成员?

l  在类的内部,直接使用成员名(属性名或方法名)

l|  在类的外部,通过 对象名.成员名;

5、        如何分析类

a)      通过一段描述性的文字,如何分析类

i.              描述性文字中,用【名词】表示

ii.              找出隐藏的【名词】

b)      分析类中的成员:属性、方法

i.              属性,【名词】或【形容词】表示

ii.              方法,【动词】表示

二、  变量的作用域和方法

a)      变量的作用域

i.              作用域,就是变量作用的范围,能被调用或访问的区域

ii.              根据作用域,分为局部变量、全局变量、形式参数

        局部变量:在方法中声明的变量,只能在方法中调用;当有全局变量和局部变量同名时,局部变量的优先级高于全局变量(遵循就近原则);

      局部变量声明声明后,必须要赋值

iiii.              形式参数:方法定义时,小括号()中出现的变量;只能在该方法中使用

                         v   全局变量:在方法外声明的变量,可以在该类的任何地方调用;可以在声明时,不赋值,有默认值

如何调用全局变量?

在类的内部调用,直接写 【全局变量名】

在类的外部调用,通过【对象名.全局变量名】

        b)      方法

i.              面向对象的3大特性:封装、继承、多态

ii.              方法是封装的表现形式之一

iii.              方法的作用:封装重复的代码的内部实现,提高代码的可重用性和可维护性

方法的分类:

  1. 根据参数,分为【无参】和【有参数】的方法
  2. 根据返回类型,分为【有返回】和【无返回】类型的方法

定义方法的语法:

public 返回类型 方法名(【形参列表】){

………………………….方法体

}

三、   无参数、无返回类型的方法

a)      语法:

public  void 方法名( ){

……………………方法体

System.out.println(输出内容);

}

b)      调用:

  1. 在类的内部,直接使用 方法名( );
  2. 在类的外部,通过【对象名.方法名( )】调用
时间: 2024-10-04 05:34:27

面向对象的热身的相关文章

面向过程,面向对象,函数式对同一个问题的思考方式

我之所以对函数式代码感兴趣是因为函数式代码富有表现力,可以使用简短.紧凑的代码完成工作,同时能对特定的问题给出优雅的解决方案.现代的编程语言不约而同的朝着面向对象.函数式.动态.解释执行的方向发展,例如Ruby,Swift.而另一些语言则更加强调函数式编程,如F#,Scala,这种语言有着强大的类型推断系统,编写的代码洁程度则令人叹为观止. 在F#编写一个两个数相加的函数,在F# Interactive中输入: let add num1 num2=num1*num2;; F# Interacti

python学习 面向对象封装

from collectoins import namedtuplePoint=namedtuple('point',['x','y'])t1=Point(1,2)print(t1.x)print(t1.y)没有方法的类属性不会发生变化    定义简单 不能改变面向对象封装私有属性!!!私有方法!!!用装饰器描述的几个方法@property !!!@classmethod!!@staticmethod! 封装:class Teacher:     def __init__(self,name,p

python—面向对象的封装

封装 私有属性 class Teacher: __identifier = 'Teacher' #私有静态属性 def __init__(self,name,pwd) self.name = name self.__pwd = pwd #私有属性 内部使用,外部不能使用 def pwd(self): print(self.__pwd) alex = Teacher('alex','3714') alex.pwd() class Teacher: __identifier = 'Teacher'

python学习_day26_面向对象之封装

1.私有属性 (1)动态属性 在python中用双下划线开头的方式将属性隐藏起来.类中所有双下划线开头的名称,如__x都会自动变形成:_类名__x的形式.这种自动变形的特点是: a.类中定义的__x只能在内部使用,如self.__x,引用的就是变形的结果.b.这种变形其实正是针对外部的变形,在外部是无法通过__x这个名字访问到的.c.在子类定义的__x不会覆盖在父类定义的__x,因为子类中变形成了:_子类名__x,而父类中变形成了:_父类名__x,即双下滑线开头的属性在继承给子类时,子类是无法覆

python面向对象知识点疏理

面向对象技术简介 类: 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例.class 类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中且在函数体之外.类变量通常不作为实例变量使用. 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据. 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖,也称为方法的重写. 实例变量:定义在方法中的变量,只作用于当前实例的类. 继承:即一个派生类(de

php学习笔记 面向对象中[接口]与[多态性]的应用

代码如下: <?php /* 接口技术 * * 接口是一种特殊的抽象类,抽象类又是一种特殊的类 * * 接口和抽象类是一样的作用 * * 因为在PHP是单继承的,如果使用抽象类,子类实现抽象类就不能再去继承其他的类了 * * 如果既想实现一些规范,又想继承其他类.就要使用接口. * * 接口和抽象类的对比 * * 1.作用相同,都不能创建对象,都需要子类去实现 * * 2.接口的声明和抽象类不一样 * * 3.接口被实现方式不一样 * * 4.接口中的所有方法必须是抽象方法,只能声明抽象方法(不

php面向对象

面向对象 什么是面向对象? 面向对象编程(Object Oriented Programming, OOP, 面向对象程序设计)是一种计算机编程架构,OOP的一条基本原则是计算机程 序是由单个能够起到子程序作用的单元或对象组合而成,OOP达到了软件工程的三个目标:重用性.灵活性和扩展性.为了实现整体 运算,每个对象都能够接收信息.处理数据和向其它对象发送信息. 什么是面向对象编程呢? 把每个独立的功能模块抽象成类形成 对象,由多个对象组成这个系统,这些对象之间都能够接收信息.处理数据和向其它对象

面向对象注意事项

在面向对象中,有实例变量和类变量,实例变量为类对象的实例成员,而类变量不仅类可以直接调用,而且类的对象也可以调用.类对象可以对实例变量进行添加.修改.删除操作等... 下面就用个示例来做参考: #!/usr/bin/env python # -*- coding:utf-8 -*- class PersonInfo(object): commity_data = 123 def __init__(self,name,age): self.name = name self.age = age de

java面向对象:面向对象的思想和概述

1:面向对象思想 面向对象是基于面向过程的编程思想. 面向过程:强调的是每一个功能的步骤 面向对象:强调的是对象,然后由对象去调用功能 2:面向对象的思想特点 A:是一种更符合我们思想习惯的思想 B:可以将复杂的事情简单化 C:将我们从执行者变成了指挥者 开发,设计,特征 面向对象开发 就是不断的创建对象,使用对象,指挥对象做事情. 面向对象设计 其实就是在管理和维护对象之间的关系. 面向对象特征 封装(encapsulation) 继承(inheritance) 多态(polymorphism