Java基础知识(六)——面向对象(1)
基本概念
面向对象:根据用户需求直接完成产品制作,对于所需要的元素单独提取
面向过程:根据用户的需求分析并完成设计图,完成所有准备工作后再分块制作,最后将所有部分组装在一起
封装性
一、把对象的属性和行为看成一个密不可分的整体,将这两者“封装”在一个不可分割的独立单位(即对象)中。
二、“信息隐蔽”,将不需要外界知道的信息属性隐藏
继承性
用户开发的程序类继承于已有的类。现在类所描述过的属性及行为(即已定义的类和方法)在继承的类中完全可用。
若一个子类只允许继承一个父类称为单继承;若允许继承多个父类称为多继承。
多态性
方法重载:在一个类中,允许多个方法使用同一个名称,但方法的参数不同完成的功能也不同
对象多态:子类对象可以与父类对象进行相互转换,而且根据其使用的子类的不同完成的功能也不同
类
定义
class 类名称{
数据类型 属性;
...
public 返回值的数据类型 方法名称 (参数1,参数2...) {
程序语句 ;
[return 表达式;]
}
}
eg.
class Person{
String name; //申明姓名属性
int age; //申明年龄属性
public void tell () { //取得信息的方法
System.out.println("姓名:"+name+",年龄:"+age);
}
}
以上过程中
1层表示类的名称
2层表示属性的定义,按照”访问权限 属性名称:属性类型“的格式定义
3层表示类中方法的定义,按照“访问权限 方法名称():方法返回值”的格式定义,若方法中有传递的参数,则在括号内加上(参数名称:参数数据;…)
对象的创建
格式
类名 对象格式 = null; //声明对象
对象名称 = new 类名(); //实例化对象,只要存在new就表示可以开辟新的堆内存空间
或
类名 对象名称 = new 类名();
eg
class Person{
String name; //申明姓名属性
int age; //申明年龄属性
public void tell () { //取得信息的方法
System.out.println("姓名:"+name+",年龄:"+age);
}
}
public class Test{
public static void main(String[] args){
Person per = new Person();
}
}
==注:==所有的对象名称都在栈空间中储存,而对象的具体内容则保存在对应的堆空间中。必须使用关键字new才可以开辟一个新的堆空间,堆空间中储存属性信息
访问对象中的属性或方法
格式
访问属性:对象名称.属性名
访问方法:对象名称.方法名()
eg.
class Person{
String name; //申明姓名属性
int age; //申明年龄属性
public void tell () { //取得信息的方法
System.out.println("姓名:"+name+",年龄:"+age);
}
}
public class Test{
public static void main(String[] args){
Person per = null();
per.name="张三";
per.age=30;
per.tell();
}
}
多个对象
eg:
class Person{
String name;
int age;
public void tell(){
System.out.println("姓名:"+name+",年龄:"+age);
}
}
public class Test{
public static void main(String[] args){
Person per1 = new Person;
Person per2 = new Person;
per1.name="zhangsan";
per1.age=30;
per2.name="lisi";
per2.age="20";
System.out.println("per1内容");
per1.tell();
System.out.println("per2内容");
per2.tell();
}
}
注
在创建多个对象的时候,要注意对象的概念,即一个类包含有多个对象,每一个类所包含的元素可以是多个的,因此每一个对象的内容需要对应满足于类中所包含的所有元素。
如果需要使用方法则将方法放置于类板块中