Java_2.面向对象

Java是一门面向对象语言,一个Java程序就是一系列对象(Object)的集合,对象通过方法调用来彼此协作完成特定的功能。

类描述一类对象的状态和行为的模板。

我们可以定义一个Post类作为这些博客的模板。

public class Post {
    private String title;
    private String content;
    
    public void print() {
        System.out.println(this.title);
        System.out.println(this.content);
    }
}

public是一个修饰符,表示外部可以访问这个类

Post的状态和行为就体现为内部定义的成员变量和成员方法上。

this.title中的this表示的是当前对象,表示获得自己的title变量。

1.变量

一个对象的状态是通过成员变量的值决定的,我们在Post类中定义了两个成员变量,通常我们也称之为属性。

private也是一个修饰符,表示这两个属性不能被外部直接访问。面向对象编程中一般需要进行信息隐藏,因此类的成员变量大多数情况下都是private的。

成员变量都有数据类型,这里titlecontent都是String类型的属性,即通过字符串来表示。

2.方法

方法定义了类的行为,一个类可以有很多方法,在方法中可以编写逻辑,操纵数据,执行特定动作。我们有时也称方法为函数。3.gou

3.构造函数

对象是类的一个实例,当一个对象创建时,需要调用类的构造函数(或者称为构造方法),这是一种特殊的成员方法。构造函数是一种和类具有同样的名字的函数,不能有返回值。一个类可以有不止一个构造函数。

具有相同命名的函数,其函数参数的类型或者个数不同的现象,我们称之为函数重载。

比如为了让别人可以创建Post对象,我们可以增加两个构造函数:

public class Post {
    private String title;
    private String content;
    
	// 第一个构造函数,
    public Post() {
        
    }
    
    // 第二个构造函数,传入标题和内容
    public Post(String title, String content) {
        this.title = title;
        this.content = content;
    }
    
    public void print() {
        System.out.println(this.title);
        System.out.println(this.content);
    }
}

  

第一个构造函数是没有任何参数的构造函数。第二个构造函数,包含了两个参数,表示创建一个Post对象时需要初始化其标题和内容。

在第二个构造函数中,this.title = title这行代码中的this表示的是当前对象。当一个类需要访问自身的属性和方法时,一般会用到this,这行代码的意思就是将title这个参数的值赋给当前对象的title属性。

如果我们没有定义构造函数,Java编译器会自动给我们生成一个没有任何参数的构造函数。如果我们自己定义了任何形式的构造函数,则编译器就不会给我们生成了。

4.创建和使用对象

public class HelloWorld {  
    
    public static void main(String[] args) {
        
        Post post = new Post("lyxcool的博客", "这是我的第一篇博客"); // 创建博客对象
        post.print(); // 调用对象方法
        
    }
}

我们在HelloWorld中 用main 方法来使用Post 的一个post方法。这里创建的Post变量是函数内的局部变量,与成员变量不同,它不属于某个对象,是一个临时变量,当方法执行结束,变量就不再起作用了。一个方法中声明的变量都属于局部变量。

5.包和import 

在开发过程中,类的数量会越来越多,我们可以通过包(Package)来组织类。包的命名一般以一个组织的域名的反写开头。

当我们需要去使用其它包中的类时,就需要使用import关键字将该类引入,这样Java编译器就能找到我们需要使用的类。

在引用类时,我们可以给定类的全限定名,也可以使用通配符。比如我们使用import com.tianmaying.domain.*;也能达到同样的效果,因为*表示引入com.tianmaying.domain包下所有的类。

posted @ 2017-03-27 11:18  李元夕cool  阅读(154)  评论(0编辑  收藏  举报