您的位置:首页 > 编程语言 > Java开发

java自学篇之class

2016-07-14 10:03 239 查看
先补上昨天的博文
面向对象程序设计
1 相关概念
何谓面向对象是什么意思呢?
面向对象程序设计是将人们认识世界过程中普遍采用的思维方法应用到程序设计中。
对象是现实世界中存在的事物,它们是有形的,也可以是无形的,对象的特征分为静态特征和动态特征两种。
静态的特征指对象的外观、性质、属性等;
动态的特征指对象具有的功能、行为等。
客观事物是错综复杂的,但人们总是从某一目的出发,运用抽象分析的能力,从众多的特征中抽取最具代表性、最能反映对象本质的若干特征加以详细研究。人们将对象的静态特征抽象为属性,用数据来描述,在 Java 语言中称之为变量;人们将对象的动态特征抽象为行为,用一组代码来表示,完成对数据的操作,在 Java语言中称之为方法,一个对象由一组属性和一组对属性进行操作的方法构成。
将具有相同属性及相同行为的一组对象称为类。在面向对象程序设计中,类是一个独的单位,它有一个类名,其内部包括成员变量,用于描述对象的属性;还包括类的成员方法,用于描述对象的行为。
在 Java 程序设计中,类被认为是一种抽象数据类型,这种数据类型,不但包括数据,还包括方法。
要利用类的方式来解决问题,必须用类创建一个实例化的类对象,然后通过类对象去访问类的成员变量,去调用类的成员方法来实现程序的功能。
一个类可创建多个类对象,它们具有相同的属性模式, 但可以具有不同的属性值。Java程序为每一个类对象都开辟了内存空间,以便保存各自的属性值。
类的特性
*封装性
封装是面向对象的方法所应遵循的一个重要原则。它有两个含义:一是指把对象的属性和行为看成一个密不可分的整体,将这两者“封装”在一个不可分割的独立单位(即对象)中。
封装机制的另一个特点是,为封装在一个整体内的变量及方法规定了不同级别的“可见性”或访问权限。
*继承性
拥有反映事物一般特性的类,然后在其基础上派生出反映特殊事物的类。在 Java 程序设计中,已有的类可以是 Java 开发环境所提供的一批最基本的程序——类库。用户开发的程序类是继承这些已有的类。被继承的类称为父类或超类,而经继承产生的类称为子类或派生类。
面向对象程序设计中的继承机制,大大增强了程序代码的可复用性,提高了软件的开发效率,降低了程序产生错误的可能性,也为程序的修改扩充提供了便利。
若一个子类只允许继承一个父类,称为单继承;若允许继承多个父类,称为多继承。目前许多面向对象程序设计语言不支持多继承。而 Java 语言通过接口(interface)的方式来弥补由于 Java 不支持多继承而带来的子类不能享用多个父类的成员的缺憾。
*多态性
多态是允许程序中出现重名现象;Java 语言中含有方法重载与成员覆盖两种形式的多态。
方法重载:在一个类中,允许多个方法使用同一个名字,但方法的参数不同,完成的功能也不同。
成员覆盖:子类与父类允许具有相同的变量名称,但数据类型不同,允许具有相同的方法名称,但完成的功能不同。
上述的材料中概念性东西太强,难以理解,多读几遍,然后在看看后面的程序,再回头来读几遍这个材料,就可以完全理解,这里不理解到后面的程序中各种概念我会通过实例给大家解释这些概念。(有很多起初我也不理解但看到后面的程序能理解80%希望你要努力呀!)
2 类与对象
从现在开始我们要进行程序的编写了,是面向对象的程序设计;类(class)和对象(object)就是面向对象方法的核心概念。类是对某一类事物的描述,是抽象的、概念上的定义;对象是实际存在的该类事物的个体,因而也称实例(Instance)。
同一个类按同种方法产生出来的多个对象,其开始的状态都是一样的,但是修改其中一个对象的时候,其他的对象是不会受到影响的。
类的声明
class 类名称
{
数据类型 属性;
方法名称(参数 1,参数 2…)
{
程序语句 ;定义方法的内容
return 表达式;
}
}
实例
class Person // 类名(类名标准写法大写开头)
{
String name; //定义变量
int age;
void talk() //创建方法
{
System.out.println("my name is :"+name+"my old is : "+age);
}
}
创建对象格式
类名 对象名= new 类名() ;
创建属于某类的对象,需要通过下面两个步骤来实现:
1、声明指向"由类所创建的对象"的变量
2、利用 new 创建新的对象,并指派给先前所创建的变量。
利用上面的类来创建一个对象
Person p ; // 先声明一个Person类的对象 p
p = new Person(); // 用 new关键字实例化Person的对象 p
也可以用下面的格式来写
Person p = newPerson() ; // 声明 Person 对象 p 并直接实例化此对象
注意:
对象只有在实例化之后才能被使用,而实例化对象的关键字就是new。
访问对象中某个变量或方法
访问属性:对象名称.属性名
访问方法:对象名称.方法名()
下面看一个实例来说明上边的东西
class Person //定义一个类
{
String name; //定义类中的变量
int age;
void talk() //创建类的方法
{
System.out.println("my name is :"+name+"my old is : "+age);
}
}
public classjava51
{
public static void main(String [] args)
{
Person p1 = new Person(); //用类实例化对象p1
Person p2 = new Person(); //用类实例化对象p1
p1.name ="robin"; //访问类中的变量并赋值
p1.age = 25;
p2.name ="lili"; //用类实例化多个对象
p2.age = 21;
p1.talk(); //访问类中的方法
p2.talk();
}
}
看到这里我相信各位都能对类和对象分清楚了吧,也大体了解类是干什么用的了;下面我们来看看类的第一个特性—封装性
封装性
先看一下实例
class Person
{
String name;
int age;
void talk()
{
System.out.println("my name is :"+name+"my old is : "+age);
}
}
public classjava51
{
public static void main(String [] args)
{
Person p1 = new Person();
Person p2 = new Person();
p1.name ="robin";
p1.age = -25;
p2.name ="lili";
p2.age = 21;
p1.talk();
p2.talk();
}
}
再看输出结果,肯定是robin的年龄是-25,显然这个程序设计有问题,为了避免这样的错误,我们要进行程序的封装(private)
再看实例:
class Person
{
private String name;
private int age;
void talk()
{
System.out.println("my name is :"+name+"my old is : "+age);
}
}
public classjava51
{
public static void main(String [] args)
{
Person p1 = new Person();
p1.name ="robin";
p1.age = -25;
p1.talk();
}
}
编译的时候报错



 123 123 123 123 123 123 123 123
 123 123 123 123 123 123 123 123

 123 123 123 123 123 123 123 123 123 123 123 123 123
 123
 123
 123
 123 123 123""""
 123
 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123
 123
 123 123 123
 123
 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123
 123
 123 123 123>
 123 123 123 123 123
 123
 123
 123
 123 123 123
 123
 123
 123
 123 123 123
 123

 123
 123
 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123
 123 123 123"" 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123
 123 123 123
 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123
 123

 123
 123
 123 123 123 123 123 123 123 123 123
 123
 123 123 123""""
 123
 123
 123
 123 123 123
 123
 123
 123
 123 123 123>
 123 123 123 123 123
 123
 123
 123
 123 123 123
 123
 123
 123
 123 123 123
 123

 123
 123
 123 123 123
 123 123 123""
 123 123 123
 123 123 123
 123



 123
 123
 123
 123
 123 123 123""""
 123
 123 123 123 123 123 123 123 123 123 123 123 123
 123
 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123
 123
 123
 123
 123 123 123
 123
 123
 123
 123 123 123>
 123 123 123 123 123
 123
 123
 123
 123 123 123
 123
 123
 123
 123 123 123
 123

 123
 123
 123 123 123
 123 123 123""
 123 123 123
 123 123 123
 123

 123
 123

 123
 123
 123 123 123 123 123 123 123 123
 123 123 123 123 123 123 123 123
 123 123 123 123
 123 123 123""
 123 123 123
 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123
 123 123 123""
 123 123 123""
 123

 123

 123
 123
 123 123 123
 123 123 123
 123 123 123
 123 123 123""
 123
 123
 123
 123 123 123
 123

 123
 123
 123
 123

 123""
 123
 123
 123
 123 123 123""""""
 123

 123
 123
 123 123 123
 123

 123
 123
 123 123 123""
 123

 123

 123
 123
 123 123 123
 123

 123
 123
 123
 123
 123 123 123
 123 123 123
 123 123 123""
 123
 123
 123
 123 123 123""""
 123

 123

 123
 123
 123 123 123"" 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123
 123 123 123
 123 123 123"" 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123
 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123
 123

 123
 123
 123
 123
 123 123 123
 123 123 123
 123 123 123""
 123
 123
 123
 123 123 123""""
 123

 123

 123
 123
 123 123 123
 123 123 123
 123



 123
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 程序 设计