笔试题访问控制符在最下面!
思想基础:面向对象是以现实生活中客观存在的事物(即对象)来构造软件系统,并在系统构造中尽可能运用人类的思维方式,强调直接以事务对象为中心来思考、分析问题并根据事物的本质特征将其抽象为系统中的对象,作为系统的基本构成单位。
面向对象的简介
·面向对象的分析(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访问修饰符可以使类的特性公开于任何类;