0
点赞
收藏
分享

微信扫一扫

Java基础语法 -- -- -- 面向对象的基本介绍(1)

静守幸福 2022-04-13 阅读 98
java

学习面向对象的三条主线

1.Java类及类的成员

2.面向对象的三大特征

3.其他关键字

面向对象的三大特征

封装 (Encapsulation)         继承 (Inheritance)         多态 (Polymorphism)

面向过程和面向对象

两者都是一种思想,

面向对象是相对于面向过程而言的。

面向过程,强调的 是功能行为,以函数为最小单位,考虑怎么做。

面向对象,将功能封装进对 象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。

面向对象的思想概述:

程序员从面向过程的执行者转化成了面向对象的指挥者

面向对象分析方法问题的思路和步骤:

  1. 根据问题需要,选择问题所针对的现实世界中的实体。
  2. 从实体中寻找解决问题相关的属性和功能,这些属性和功能就形成了概念世界中的类。
  3. 把抽象的实体用计算机语言进行描述,形成计算机世界中类的定义。即借助某种程序 语言,把类构造成计算机能够识别和处理的数据结构。
  4. 将类实例化成计算机世界中的对象。对象是计算机世界中解决问题的最终工具

类和对象Object 是面向对象的核心概念。

类是对一类事物的描述,是抽象的、概念上的定义。

对象是实际存在的该类事务的每个个体,因而也成为实例

java类及类的成员

属性:对应类中的成员变量

行为:对应类中的成员方法

Field = 属性 = 成员变量,Method = (成员)方法 = 函数

类创建的语法格式:

修饰符 class 类名 {

        属性声明; 方法声明;

}

说明:修饰符public:类可以被任意访问 类的正文要用{ }括起来

对象的创建:

        Java类及类的成员

                如何使用Java类

        Java类的实例化,及创建类的对象

 创建语法:类名 对象名 = new 类名();

使用:”对象名.对象成员“的方式访问对象成员(包括属性和方法)

public class Zoo{
    public static void main(String args[]){
        //创建对象
        Animal xb=new Animal();
        xb.legs=4;//访问属性
        System.out.println(xb.legs);
        xb.eat();//访问方法
        xb.move();//访问方法
    }
}

对象的创建和使用:内存解析

堆(Heap):此内存区域的唯一目的就是存放对象的实例,几乎所有的对象实例都是在这里分配内存。这一点在Java虚拟机规范中的描述是:所有的对象实例以及数组都要在堆上分配。

栈(Stack):是指虚拟机的栈。虚拟机的栈用于存储局部变量等。局部变量存放了编译器可知长度的各种基本数据类型、对象引用。方法执行完,自动释放。

方法区(Method Area):用于存储已被虚拟机加载的类信息、常量、静态变量、及时编译编译后的代码等数据。

类的成员之一:属性

语法格式:

        修饰符 数据类型 属性名 = 初始化值 ;

        说明1: 修饰符

        常用的权限修饰符有:private、缺省、protected、public

        其他修饰符:static、final

        说明2:数据类型

                任何基本数据类型(如int、Boolean) 或 任何引用数据类型。

        说明3:属性名        

                属于标识符,符合命名规则和规范即可。

变量的分类:成员变量和局部变量

        在方法体外,类体内声明的变量称为成员变量。

        在方法体内部声明的变量称为局部变量。    

 类的成员之二:方法

定义:

        方法是类或对象行为特征的抽象,用来完成某个功能的操作,在某些语言中也称为函数或过程。

        将功能封装为方法的目的是,可以实现代码重用,简化代码

        Java里的方法不能独立存在,所有的方法必须定义在类里。

方法的声明格式:

        修饰符 返回值类型 方法名(参数类型 形参1, 参数类型 形参2, ….){

                方法体程序代码 return 返回值;

        }

        其中: 修饰符:public,缺省,private, protected等 返回值类型:

        没有返回值:void。

        返回值,声明出返回值的类型。与方法体中“return 返回值”搭配使用 方法名:属于标识符,命名时遵循标识符命名规则和规范,“见名知意” 形参列表:可以包含零个,一个或多个参数。多个参数时,中间用“,”隔开 返回值:方法在执行完毕后返还给调用它的程序的数据。

 方法的调用:

        方法通过方法名被调用,且只有被调用才会执行。

方法的重载:

        在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。

重载的特定

        与返回值类型无关,只看参数列表,且参数列表必须不同(参数个数或参数类型)。调用时,根据方法参数列表的不同来区别。

重载实例:

//返回两个整数的和
int add(int x,int y){return x+y;}
//返回三个整数的和
int add(int x,int y,int z){return x+y+z;}
//返回两个小数的和
double add(double x,double y){return x+y;}

 方法参数的值传递机制:

 方法必须由其所在类或对象调用才有意义。若方法含有参数:

        形参:方法声明时的我参数

        实参:方法调用时实际传给形参的参数值

面向对象的特征之一:封装

信息的封装和隐藏:

        Java中通过将数据声明为私有的(private),在提供公共的(public)方法:getXxx()和SetXxx()对实现该属性的操作,以便实现下述目的:

  1.         隐藏一个类中不需要对外提供的实现细节;
  2.        使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑, 限制对属性的不合理操作;
  3.         便于修改,增强代码的可维护性;

四种权限修饰符:

Java权限修饰符public、protected、(缺省)、private置于类的成员定义前, 用来限定对象对该类成员的访问权限。

  •  对于class的权限修饰只可以用public和default(缺省)。
  • public类可以在任意地方被访问。
  • default类只可以被同一个包内部的类访问。

 

 类的成员之三:构造器(或构造方法)

构造器的特征:

  • 它具有与类相同的名称
  • 它不声明返回值类型(与声明为void不同)
  • 不能被static 、final 、synchronized 、abstract 、native修饰,不能有return语句返回值

 构造器的作用:

                        创建对象;给对象进行初始化                                         

 

public class Animal {
    private int legs;
        // 构造器
    public Animal() {
        legs = 4;
    } 
    public void setLegs(int i) {
        legs = i;
    }
    public int getLegs() {
        return legs;
    }
}

 


JavaBean

javabean是一种Java语言写成的可重用组件

所谓JavaBean,是指符合以下标准的Java类:

  • 类是公共的
  • 有一个无参的公共的构造器
  • 有属性,且有对应的get set方法

关键字this的使用:

概念:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        

在Java中,this关键字比较难理解,它是在方法内部使用,

        即这个方法所属对象的引用;

        它在构造器内部使用,表示该构造器正在初始化的对象

this可以调用类的属性、方法和构造器

什么时候使用this?

        在方法内需要用到调用该方法的对象时,就用this

        具体的:我们可以用this来区分属性和局部变量

        比如:this.name = name;

注意:

  1. 可以在类的构造器中使用"this(形参列表)"的方式,调用本类中重载的其 他的构造器!
  2.  明确:构造器中不能通过"this(形参列表)"的方式调用自身构造器
  3.  如果一个类中声明了n个构造器,则最多有 n - 1个构造器中使用了 "this(形参列表)"
  4.  "this(形参列表)"必须声明在类的构造器的首行!
  5.  在类的一个构造器中,最多只能声明一个"this(形参列表)

 

举报

相关推荐

0 条评论