JAVA面向对象基础

笔试题访问控制符在最下面!

思想基础:面向对象是以现实生活中客观存在的事物(即对象)来构造软件系统,并在系统构造中尽可能运用人类的思维方式,强调直接以事务对象为中心来思考、分析问题并根据事物的本质特征将其抽象为系统中的对象,作为系统的基本构成单位。

面向对象的简介
·面向对象的分析(OOA):确定需求或者业务的角度。按照面向对象的思想来分析业务。
·面向对象的设计(OOD):主要作用在OOA的基础上进一步规范化整理,从而建立索要操作的对象以及相互之间的联系,以便能被OOP直接接受。
·面向对象编程(OOP):在前两者的基础上,对数据模型进一步细化。OOP是根据真实的对象来构建应用程序模型。

对象的概念:
一切事物皆可作为对象,人们要进行研究的任何事物,均可以看作对象;
一个对象可以通过数据值来描述自身所具有的状态;
对象还具有行为,通过行为可以改变对象的状态,对象将数据和行为封装于一体,实现了两者之间的紧密结合。

类!!!!!!!!!!!!

类是具有相同或相似性质的对象的抽象。因此,对象的抽象是类;
类由“特征”和“行为”组成
~~特征 是对象状态的抽象,通常使用变量来描述类的特征,又称之为属性
~~行为,是对象操作的抽象,通常使用方法来描述类的行为。
在这里插入图片描述

类的关系
类的关系主要有两种:与、或

****************************面向对象特征:
唯一性,继承性,分类型,多态性

类的声明

**类(class)定义了一种新的数据类型,是具有相同特征(属性)共同行为(方法)**的一组对象的集合

语法
访问符 修饰符 定义符 类名{
属性
方法 }

public class Person{
       private String name;
       //get set方法
       public String getName(){
       return name;
       }
       public void setName(String name){
       this.name=name;
       }
       public void display(){
       System.out.println("姓名:"+name);
}

在这里插入图片描述

对象的创建和使用(重点)

语法:
类名 对象名 =new 类名();
示例:
Person p=new Person();
也可以分开写:
Person p;
p=new Person();
声明对象后,如果不想给对象分配存储空间
示例:
Person p=null;
null 赋给引用类型变量,但不可以赋给基本类型变量
例如 int num= null; false!
Object object=null; true!
判断一个引用类型数据是否为空用 == 号来判断

访问对象属性
对象名.属性名
Person p =new Person(); p.display();//使用对象p调用display()方法显示对象各成员变量默认值
调用对象的方法
对象名.方法名();

方法

方法是类的行为的体现
访问符 修饰符 返回类型 方法名(参数列表){
//方法体
}

public String getName(){
   return name;
}
public void display(){
   System.out.println(“姓名”+name)

方法的参数传递机制
带参数
public void setName(String name){
this.name =name;
}
带多个参数
public int add(int a,int b){
return a+b;
}
根据参数的使用场合,可以将参数分为:
形参:“声明方法”时给方法定义的形式上的参数,此时形参没有具体的数值,形参前必须有数据类型,格式为:
方法名(数据类型 形参)

public static void swap(int a,int b) {//a,b没有具体的值
}

实参:“调用方法”时程序给方法传递的实际数据,实参前面没有数据类型,格式为:
对象名.方法名(实参)
int a=25;
p.display( a )
System.out.println(“调用display方法后,a的值为”+a);

引用传递

在这里插入图片描述
参数引用传递
//定义一个数据类Mydata

class Mydata{
      public int a;
      public int b;
      }
声明swap()方法,此时的data时形参
public static void swap(Mydata data){
  //下面三行代码实现data的a,b两个成员变量的交换,定义一个临时变量来保存data对象的a成员变量的值
  int tmp=data.a;
  //把data对象的b成员变量值赋给a
  data.a=data.b;
  data.b=tmp;
  System.out.println(”swap方法里,a成员变量的值是“+data.a+";b的值是”+data.b);
}

构造方法

构造方法的方法名必须与类名一直,且没有返回类型,也没有void。

访问符 类名(参数列表){
初始化语句;
}
this关键字
this关键字代表当前所在类将来产生的对象,及将来用该类new出来的对象,用于获取当前类的对象的引用。

初始化对象的过程

定义完一个带参数的Person()构造方法后,就可以通过此构造方法创建一个Person对象。
在这里插入图片描述

默认构造方法:如果在类中没有定义任何的构造方法,则编译器将会自动加上不带任何参数的构造方法,即缺省构造方法,该方法不存在于源程序中,但可以使用,比如:
Person p=new Person();
在这里插入图片描述

方法重载

java程序中,如果同一个类中包含了两个或两个以上方法的方法名相同,但参数列表不同,则被称为方法重载
三个原则
1,在同一个类中
2,方法名相同
3,参数列表不同,即参数的个数,或对应位置上的类型不同

构造方法重载

public class MyClass{
   int  myData;
public MyClass(){
}
public MyClass(int myData){
   this.myData=myData;
   }
}

对象数组

语法:类名【】 数组名=new 类名【长度】;
示例:Student【】 array=new student【5】;

访问控制符

private(当前类访问权限):被声明为private的成员只能被当前类中的其他成员访问,不能在类外看到;
缺省(包访问权限):如果一个类或类的成员前没有任何访问控制符,
则获得缺省的访问权限,缺省的可以被同一包中的所有类访问;
protected(子类访问权):被声明为protected的成员既可以被同一包中的其他类访问,也可以被不同包中的子类访问;
public (公共访问权限):被声明为public的成员可悲同一包或不同包中的所有类访问,即public访问修饰符可以使类的特性公开于任何类;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值