类与对象

一、Java的对象和类
Java作为一种面向对象语言,有类、对象、实例、方法、继承、重载、抽象、多态、封装的基本概念。
1、类
(1)类是Java的核心和本质,封装、继承、多态和抽象几大特性都离不开类,可以把类看成是对象的模板。
(2)类中的变量。包括局部变量、全局变量和类变量。
局部变量:定义在方法中的变量,作用域为本方法中。
成员变量:定义在类中方法外的变量,作用域为本类。
类变量(静态变量):类变量也声明在类中,方法体之外,但必须声明为static类型(static表示全局的、静态的)。

/**
 * @author shen
 * @desc test
 * @date 2016年7月10日
 */
public class Book {

    static int num = 0;//类变量
    static final String type = "children";//用final变量只能被初始化一次,之后不能再赋值

    String str="this is a book";//实例变量
    public void borrow(){
        int i = 0;//局部变量
    }

    public static void rend(){
        //静态方法,无需创建对象就能使用
        System.out.println("this is a static method.");
    }

    public static void main(String[] args) {
        rend();//直接调用
        System.out.println("this is a main function.");
    }

    static {
        //静态代码块,类加载时调用
        System.out.println("this is a static code block.");
    }
}

结果:
这里写图片描述
(3)构造方法
每个类都有构造方法,如果没有显式定义构造方法,编译器会默认为类创建一个不带参的构造方法(若子类继承有带参构造方法的父类,需要显式调用父类构造方法)。
构造方法名必须与类名相同,一个类中可以有多个构造方法(参数不同),创建对象时至少一个构造方法。
2、对象
对象的创建:声明,声明类的类型和名称;实例化,使用new创建一个对象;初始化,创建对象时会调用构造方法初始化对象

/**
 * @author shen
 * @desc test
 * @date 2016年7月10日
 */
public class User {

    private String type = "student";
    private String name;//私有属性只能在本类获取到
    private int age;
    public int height;//公有属性其他类也能获取到

    public int getHeight() {
        return height;
    }

    public void setHeight(int height) {
        this.height = height;
    }

    //Javabean的规范,通过getter和setter对数据进行封装
    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public User(){
        //无参构造方法
    }

    public User(String num){
        //带参构造
    }

    public User(String name,int age){
        //参数个数不同的构造
        this.name = name;
        this.age = age;
    }

    //普通方法
    public void borrow(String bookName){
        //bookName为方法体中的局部变量
        System.out.println(this.name + " borrow a book :" + bookName );
    }

    public static void main(String[] args) {

        User jack = new User();//默认的无参构造创建对象
        jack.age = 20;//私有属性,只能在本类使用这种方式
        jack.name = "jack";

        //公有属性其他类也能获取到,暴露了数据细节。将属性定义为private并使用getter和setter方法隐藏数据的细节(Java的封装特性)
        jack.height = 170;
        jack.borrow("Java code");
        System.out.println(jack.type);

        User jane = new User();
        jane.setAge(19);//Javabean规范,实现对数据细节的隐藏封装
        jane.setName("jane");
        jane.setType("teacher");
        jane.borrow("C prime plus");
        System.out.println(jane.type);

        User tom = new User("tom", 21);//使用带参构造创建对象
        tom.borrow("C++ prime plus");
    }


}

结果:
这里写图片描述

二、基本规则
1、一个源文件中只能有一个public类,可以有多个非public类,并且public类名必须与源文件名称相同
2、包与import语句
(1)Java包主要是用来给类分类,创建包使用package语句实现。包也有基本的命名规则,根据公司或个人名、项目名、模块名等命名。
(2)import语句。import语句就是用来提供一个合理的路径,使得编译器可以找到某个类,有点类似与c的头文件和c++的命名空间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值