java面向对象编程(上)

Posted 不吃饭了!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java面向对象编程(上)相关的知识,希望对你有一定的参考价值。

java面向对象学习的三条主线


1.Java类及类的成员:属性、方法、构造器、代码块、内部类
2.面向对象的三大特征:封装性、继承性、多态性、(抽象性)
3.其它关键字:this、super、static、final、abstract、interface、package、import等
 
 
面向过程(pop)与面向对象(oop)

二者都是一种思想,面向对象是相对于面向过程而言的。
面向过程(Object Oriented Programming,强调的是功能行为,以函数为最小单位,强调每个功能的实现步骤。
面向对象(
Procedure Oriented Programming
),将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,强调用对象去调用方法
 
 
面向对象三大特性:
  1. 封装(Encapsulation)
  2. 继承(Inheritance)
  3. 多态(Polymorphism)
 
面向对象中两个重点---类和对象

类(Class)和对象(Object)是面向对象的核心概念。
类是对一类事物的描述,是抽象的、概念上的定义
对象是实际存在的该类事物的每个个体,因而也称为实例(instance)

 

 常见的类的成员有:

  1. 属性:对应类中的成员变量 。 属性 = 成员变量 = Field  =(域、字段)
  2. 行为:对应类中的成员方法 。 (成员)方法 = 函数 = Method
  3. 创建类的对象 = 类的实例化 = 实例化类

理解“万事万物皆对象”:

  1. 在java语言范畴中,我们都将功能、结构等封装到类中,通过类的实体化,来调用具体的功能结构。
  2. 涉及到java语言与前端html、后端的数据库交互时,前后端的结构在Java层面交互时,都体现为类。对象 
 
类的语法格式:
修饰符 class 类名 {
属性声明;
方法声明; }
说明:修饰符public:类可以被任意访问
类的正文要用{ }括起来

举例:
public class Person{
private int age ; //声明私有变量 age
public void showAge(int i) { //声明方法showAge( )
age = i; 
   } 
}

 

 

对象的创建和使用

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

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

/*
1、创建类,设计类的成员
2、创建类的对象
3、通过“对象.属性”、“对象.方法”调用对象的结构

4、如果创建了一个类的多个对象,则每个对象都独立拥有一套类的属性(非static的)
 意味着:如果我们修改一个对象的属性a,则不影响另外一个属性a的值
 */
public class OopDemo1 {
    public static void main(String[] args) {
        //创建Person类的对象
        Person p1 = new Person();

        //调用对象的结构:属性、方法
        //调用属性:“对象.属性”
        p1.name = "女驸马";
        p1.age = 18;
        p1.isMale = false;


        //调用方法:“对象.方法”
        p1.eat();
        p1.sleep();
        p1.talk("chinese");

        //创建第二个对象
        Person p2 = new Person();
        System.out.println(p2.name);//null,与p1不同


        //创建第三个对象
        Person p3 = p1;
        //将p1变量保存的对象地址值赋给了p3,导致p1与p3指向了堆空间的同一个对象实体
        System.out.println(p3.name);//女驸马
    }
}

class Person{
    //属性
    String name;
    int age;
    boolean isMale;

    //方法
    public void eat(){
        System.out.println("人可以吃饭");
    }

    public  void sleep(){
        System.out.println("人可以睡觉");
    }

    public  void talk(String language){
        System.out.println("人可以说话,用的是:" + language);
    }
}

 

类的访问机制


 

  1. 在一个类中的访问机制:类中的方法可以直接访问类中的成员变量。(例外:static方法访问非static,编译不通过。)
  2. 在不同类中的访问机制:先创建要访问类的对象,再用对象访问类中定义的成员。

 

匿名对象:

 


 

我们创建的对象,没有显式的赋给一个变量名,即为匿名对象

特征:匿名对象只能使用一次。

 

 

 

类中属性(field)的使用


属性语法格式:
修饰符 数据类型 属性名 = 初始化值 ;
举例:
public class Person{
private int age; //声明private变量 age
public String name = “Lila”; //声明public变量 name
}
  1. 说明1: 修饰符:常用的权限修饰符有:private、缺省、protected、public;其他修饰符:static、final (暂不考虑)
  2. 说明2:数据类型: 任何基本数据类型(如int、Boolean) 或 任何引用数据类型。
  3. 说明3:属性名:属于标识符,符合命名规则和规范即可。

 

变量的分类:成员变量与局部变量。


 

  1. 在方法体外,类体内声明的变量称为成员变量。
  2. 在方法体内部声明的变量称为局部变量。

 

属性(成员变量)与局部变量的区别

 

 

public class OopDemo2 {
    public static void main(String[] args) {
        User u1 = new User();
        System.out.println(u1.name);
        System.out.println(u1.age);
        System.out.println(u1.isMale);

        u1.talk("韩语");
        u1.eat();
    }
}

class User{
    //属性
    String name;
    int age;
    boolean isMale;

    public void talk(String language){//language:形参,也是局部变量
        System.out.println(language);
    }
    public void eat(){
        String food = "大米";//局部变量
        System.out.println("南方人喜欢吃:" + food);
    }
}

 

类中方法的声明与使用:


方法的定义:
  1. 描述类应该具有的功能
  2. 将功能封装为方法的目的是,可以实现代码重用,简化代码
  3. Java里的方法不能独立存在,所有的方法必须定义在类里。
方法的声明格式:
 权限修饰符  返回值类型  方法名(参数类型 形参1,参数类型 形参2,……){
    方法体
return 返回值; }

其中权限修饰符:public,缺省,private, protected等。

返回值类型:有返回值  VS 没有返回值

  1. 如果有返回值,则必须在方法声明时,指定返回值的类型。同时,方法中,需要使用return关键字来返回指定类型的变量或常量
  2. 如果方法内没有返回值:则方法声明时,使用void来表示,通常,没有返回值的方法就不用returrn,但是,如果使用的话,只能用“return”表示结束方法的意思。
  • 方法名:属于标识符。命名时遵循标识符命名规则与规范。、
  • 形参列表:可以包含零个,一个或多个参数。多个参数时,中间用“,”隔开。
  • 方法体:方法功能的体现。
  • 返回值:方法在执行完毕后返还给调用它的程序的数据。
  • return关键字的使用:使用范围:在方法体内。作用:a.结束方法。  b.对于有返回值类型的方法,使用“return  数据”方法返回所要的数据。return后面不能跟执行语句。
 
方法的使用中,可以调用当前类的属性或方法,特殊的:方法A中又调用了方法A,叫做递归方法
方法中只能调用方法或属性,不可以在方法内部定义方法
 
方法的分类:按照是否有形参及返回值

 

 

 
 

以上是关于java面向对象编程(上)的主要内容,如果未能解决你的问题,请参考以下文章

java面向对象编程(上)

Java编程基础-面向对象(上)

Java基础编程篇(4.面向对象上)

java入门12--面向对象(上)

java入门12--面向对象(上)

面向对象编程,不香了吗?