JAVA面向对象程序设计

面向对象的基础

一.类与对象
1.类的声明
类可理解为Java中的一种新的数据类型,他是Java程序设计的基本单位。这种数据类型中封装了数据的内容和对数据内容的操作。类的定义可以看作是建立对象的模板,当程序运行时,已声明的类用来创建新对象。由类创建对象对象的过程称为实例化(instantiation),每个对象都是类的一个新实例(instance)。

2.类与对象的关系
        类→对象(具体化过程)
        对象→类(抽象化过程)

        对象包括
        1.属性(对象的特征)
        2.方法(对象的行为)

3.类的声明格式

[修饰符]  class  类名  [extends 父类]  [implements 接口名]
{
     类成员变量声明    //描述对象的状态
     类方法声明       //描述对象的行为
}

3.1类头
1.修饰符
(1)访问控制符:public、private和protected
public(公共)——后续定义的任何类均可访问。
private(私有)——仅能被类自身的内部函数成员访问,其他任和类都不能直接访问。
protected(受保护的)——同private,但能被继承类受保护的成员访问,不能被私有成员访问。
(2)抽象类说明符:abstract。
abstract 不仅用于类的声明,也适用于方法。当用于类的声明时,该类不能创建对象。
(3)最终类说明符:final。
final不仅用于类的声明,也适用于变量和方法。当用于类的声明时,该类不能有子类;当用于变量声明时,该变量最初赋予的初值在以后的调用中只能被引用不能被修改;同样声明为final的方法,在以后只能被使用不能被重载。
2.class关键字:
类的修饰符后面的class标志一个类定义的开始(注意不将class写成Class),class后面应跟新定义的类的名字,类名由编程者自己定义,应符合Java对标识符的有关规定,能体现该类的主要功能或作用。
3.类名
类名指的是具体创建的类的名字,遵循Java的命名方式。(习惯上类名首字母大写)
3.2类的成员
1.属性
声明方式
 

[修饰符]  数据类型  变量名;

2.方法
 

[修饰符]  返回值类型  方法名(参数列表) {
      //方法体
}

3.构造方法

4.类的实例对象及使用过程

 

public class Student {            //创建了一个学生类       
   pubic static void main(String[] args) {  
      int age;                    //定义类的成员变量
      String name;
      String sex;        
      Student stu = new Student();  //创建了一个名为stu的学生对象
      stu.age = 18;                
      stu.name = 张三;
      stu.sex = 男;
}       

二.构造方法
1.概念
(1)构造方法是类中的一种特殊的方法。
(2)构造方法名与类名相同,不返回任何值。
(3)构造方法可初始化成员变量。
例:类中加一个构造方法,可初始化类的成员变量
 

public class Student {
     int age;
     String name;
  public Student(int a,String b) {
     age = a;
     name = b;
  }
  Student stu = new Student(18,"小明");
}



2.关键字this
(1)this表示当前对象,可以调用类的属性、方法、构造方法
(2)什么时候使用this关键字呢?
当形参与成员变量重名时,如果在方法内部需要使用成员变量时,必须添加this来表示该变量的类成员。它在方法内部就是这个方法所属的对象的引用变量。
例:调用类的属性
 

public class Person {
   public Person(int age,String name) {
        this.name = name;
        this.age =age;
   }
   int age;
   String name;
   public void setName(String name) {
        this.name = name;
   }
}



例:调用类的方法

public class A {
   String name;
   public A(String x) {
      name = x;
   }
   public void func1() {
      System.out.println("func1 of  "+ name +"  is calling");
   }
   public void func2() {
      A a2 = new A("a2");
      This.func1();
      a2.func1();
   }
}
public class TestA {
   pubic static void main(String[] args) { 
      A a1 = new A ("a1");
      a1.func2();
   }
}



运行结果
 

func1 of a1 is calling
func1 of a2 is calling

面向对象设计的核心技术


面向对象程序设计的核心技术主要是封装、继承和多态性。

1.封装

类是封装的基本单元。通过封装可以隐藏类的实现细节,也可以避免对类中属性的直接操作。可以通过类的公共接口访问类中的变量,而不必知道这个接口的具体实现方式。只要这个方法的名字和参数不变,即使类中的变量被重新定义,或方法的代码被修改,对类中的变量的访问也不会受到影响。比如,你在计算机上安装了一个声卡,你不必知道声卡的内部结构,也不必知道功能如何实现的,因为实现声卡功能的继承电路被封装了。你只要知道声卡应该装在电脑主板的什么位置,其他的设备如音箱,光驱怎样和声卡连接就可以了。

2.继承

继承是对类的功能的重用和扩充。通过对某一个类的继承产生一个新的子类,子类既有从某个类中继承下来的功能,又可以自行定义自己的变量和方法,产生新的功能。

3.多态性

多态性指的是方法的名字相同,但实现不同。即“同一接口,多个方法”。如有三个方法,分别用来计算圆、矩形、三角形面积,他们的名字可以都叫做area。

  • 11
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值