Java 面向对象——java中的类和对象
目录
对象和类的概念
- 类:类是一个模板,它描述一类对象的行为和状态。
-
对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
借用网上的图简单理解一下类和对象,下图中男孩(boy)、女孩(girl)为类(class),而具体的每个人为该类的对象(object):
一、Java中的类
- 现实世界的事物
- Java中用class描述事物也是如此
- 定义类其实就是定义类的成员(成员变量和成员方法)
定义类的基本格式:
[修饰符] class 类名
{
//零到多个构造器...
//零到多个成员变量...
//零到多个方法...
//零到多个初始化块...
}
- 修饰符:可以为public 、final、abstract 或者不写
- 类名:大驼峰命名法(第一个单词的首字母也大写。常用于类名、属性)(public class DataBaseUser)
小驼峰法:除第一个单词之外,其他单词首字母大写(int myStudentCount)
通过下面一个简单的类来理解下Java中类的定义:
//学生类
class Student {
//定义变量
//姓名
String name;
//年龄
int age;
//地址
String address;
//定义方法
//学习的方法
public void study() {
System.out.println("学生爱学习");
}
//吃饭的方法
public void eat() {
System.out.println("学习饿了,要吃饭");
}
//睡觉的方法
public void sleep() {
System.out.println("学习累了,要睡觉");
}
}
一个类可以包含以下类型变量:
- 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
- 成员变量:(实例)成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
- 类变量:类变量也声明在类中,方法体之外,但必须声明为static类型。
一个类可以拥有多个方法,在上面的例子中:study()、eat()和sleep()都是Student类的方法。
代码示例:
public class Variable{
static int allClicks=0; // 类变量
String str="hello world"; // 实例变量
public void method(){
int i =0; // 局部变量
}
}
1、构造器
构造器也叫构造方法或者构造函数,构造器与类名相同,没有返回值,连void都不能写;
构造器定义格式:
[修饰符] 类名 (形参列表)
{
//构造器方法体代码
}
下面是一个构造方法示例:
public class Puppy{
public Puppy(){
}
public Puppy(String name){
// 这个构造器仅有一个参数:name
}
}
- 名称与类名相同,没有返回值,不能写void
- 如果类中没有手动添加构造器,编译器会默认再添加一个无参构造器
- 如果手动添加了构造器(无论什么形式),默认构造器就会消失
- 构造器可以重载
2、成员变量
成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。和以前变量的定义是一样的格式,但是位置不同,在类中方法外。
type 成员变量名称 [= 默认值];
- 修饰符 (public protected private)三选一、 static、final
变量的定义格式:
A:数据类型 变量名 = 初始化值; int a=100;
B:数据类型 变量名; int a;
变量名 = 初始化值;
3、方法(成员方法)
成员方法:和我们前面学习过的方法的定义是一样的。去掉static关键字
- 方法是解决一类问题的步骤的有序组合
- 方法包含于类或对象中
- 方法在程序中被创建,在其他地方被引用
[修饰符] 方法的返回值类型 方法名称 (形参列表)
{
//方法体代码
[return 返回值;]
}
- 修饰符 (public protected private)三选一、 static、final、synchronize、native
示例:
//定义方法
//学习的方法
public void study() {
System.out.println("学生爱学习");
}
4、初始化代码块(略)
初始化代码块将在后面学习后单独讲解。
二、Java中的对象
1、创建对象
对象是根据类创建的。在Java中,使用关键字new来创建一个新的对象。创建对象需
要以下三步:
- 声明:声明一个对象,包括对象名称和对象类型。
- 实例化:使用关键字new来创建一个对象,只是为对象在内存中开辟空间。
- 初始化:使用new创建对象时,会调用构造方法初始化对象,对象中的值赋初始值。
格式:
classTpye 对象名称 = new classTpye();
示例代码:
//声明一个SimplePerson类型的变量
SimplePerson simplePerson;
//通过new关键字调用SimplePerson类的构造器,返冋一个SimplePerson实例
//将该SimplePerson实例赋给simplePerson
simplePerson=new SimplePerson();
//可以简写为
SimplePerson simplePerson=new SimplePerson();
下面是一个创建对象的例子:
public class Puppy{
public Puppy(String name){
//这个构造器仅有一个参数:name
System.out.println("小狗的名字是 : " + name );
}
public static void main(String[] args){
// 下面的语句将创建一个Puppy对象
Puppy myPuppy = new Puppy( "tommy" );
}
}
编译并运行上面的程序,会打印出下面的结果:
小狗的名字是 : tommy
2、访问实例变量和方法
通过已创建的对象来访问成员变量和成员方法,如下所示:
/* 实例化对象 */
Object referenceVariable = new Constructor();
/* 访问类中的变量 */
referenceVariable.variableName;
/* 访问类中的方法 */
referenceVariable.methodName();
实例:
下面的例子展示如何访问实例变量和调用成员方法:
public class Puppy{
int puppyAge;
public Puppy(String name){
// 这个构造器仅有一个参数:name
System.out.println("小狗的名字是 : " + name );
}
public void setAge( int age ){
puppyAge = age;
}
public int getAge( ){
System.out.println("小狗的年龄为 : " + puppyAge );
return puppyAge;
}
public static void main(String[] args){
/* 创建对象 */
Puppy myPuppy = new Puppy( "tommy" );
/* 通过方法来设定age */
myPuppy.setAge( 2 );
/* 调用另一个方法获取age */
myPuppy.getAge( );
/*你也可以像下面这样访问成员变量 */
System.out.println("变量值 : " + myPuppy.puppyAge );
}
}
编译并运行上面的程序,产生如下结果:
小狗的名字是 : tommy
小狗的年龄为 : 2
变量值 : 2
上一篇: java中的面向对象基础
下一篇: 关于重复显示的详细介绍