java基础_07

1、方法
    方法其实就是非面向对象中的函数。函数是一系列代码的集合,由函数名、参数列表、返回值、函数体四部分构成。
java中方法的格式:
    返回值    方法名(参数列表)
    {
        方法体
    }
问题1:两个方法的方法名是否可以相同?    可以。当两个方法的名称相同时如何区分?第一,把两个方法放在不同的类中;
    第二,用参数列表来区分。只要两个方法的参数列表不同则可以区分。    这个特征就叫做方法重载(overload)
    
    
方法重载的特征:
1 构成重载的2个或多个方法一定是定义在同一个类中的。
2 重载的2个方法的方法名必须相同,而参数列表必须不相同。返回值无关紧要。
    
    
概念:命名空间namespace。所谓命名空间就是类似于:广西省.梧州市.梧州学院.计算机系.3班.xxx
    
2、构造方法    
构造方法和new关键字有关。我们使用new关键字由类来创造对象时,new关键字会自动调用该类的构造方法。

构成方法具有以下特点:
1 构造方法的方法名和类名一样。
2 构造方法必须没有返回值。
3 构造方法可以有多个,也就是说可以重载。
4 普通方法需要显式调用执行(如果不调用就不执行),而构造方法不用显式调用,在new的时候new关键字会自动调用
    合适的(参数列表匹配)构造方法。
5 构造方法的作用:是用来初始化对象中的成员变量。
6 如果定义类时不写构造方法,编译器会帮我们提供一个默认的空的构造方法;但是如果你自己写了一个参数列表非空的构造方法,
  则编译器再也不会帮你创建那个默认的空参数构造方法了。

3、访问修饰符
java中有4个访问修饰符:public protected 默认的 private。访问修饰符是用来限制别人对该变量(或方法或类)的
访问的,是为了实现封装。

public和private是最好记的。public无任何访问限制,所有的都可以访问。而private是最严格的,只有类内部可以访问,其他类均不能访问(不管是不是同一个包,也不管是不是父子类)。
protected访问限制也不大。protected只有在不同包且没有父子类关系时不能访问,也就是说如果是同一个包中就可以访问,或者不是同一个包但是有父子类关系也可以访问。
默认的访问权限比protected略小,默认访问权限只有同一个包内可以访问,只要是不同包肯定不可以访问。




概念:封装。封装是面向对象的一大特征,所谓封装就是隐藏。就是将一些内部用到而不希望外部看到(更不希望外部来操作)的东西隐藏起来。

package com.gxasz.wuzhou.java1;

public class A {
    int a;
    
    public A(){}
    
    public A(int a)
    {
        this.a = a;
    }
    
    void func1(int a)
    {
        System.out.println("A.func1, int a = " + a);
    }
    
    int func1(double a)
    {
        System.out.println("A.func1, double a = " + a);
        return 0;
    }

}
package com.gxasz.wuzhou.java1;

public class Book {
    String bookName;        // 书名
    String authorName;        // 作者名
    int noPages;            // 总页数
    boolean isAvailable;    // 是否可用
    
    // 构造方法
    public Book()
    {
        
    }
    
    public Book(String bookName)
    {
        this.bookName = bookName;
    }
    
    public Book(String bookName, String authorName, int noPages, boolean isAvailable)
    {
        this.bookName = bookName;
        this.authorName = authorName;
        this.noPages = noPages;
        this.isAvailable = isAvailable;
    }
    
    public void printInfo()
    {
        System.out.println("this.bookName = " + this.bookName);
        System.out.println("this.authorName = " + this.authorName);
        System.out.println("this.noPages = " + this.noPages);
        System.out.println("this.isAvailable = " + this.isAvailable);
    }
    
    
    public boolean isAvail()
    {
        if (isAvailable == true)
        {
            System.out.println("有这本书");
            return true;
        }
        System.out.println("没这本书");
        return false;
    }
    
    public void setAvail(boolean b)
    {
        this.isAvailable = b;
    }
    
    public void setBookName(String name)
    {
        this.bookName = name;
    }
    
    public String getBookName()
    {
        return this.bookName;    
    }

    
}
package com.gxasz.wuzhou.java1;

public class FangWen {
    int a;
    private int bbbbb;
    protected int c;
    
    public void setB(int b)
    {
        this.bbbbb = b;
    }
    
    public int getB()
    {
        return this.bbbbb;
    }
    
    public void setC(int c)
    {
        this.c = c;
    }
    
}
package com.gxasz.wuzhou.java1;

public class Function {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        //A a = new A();
        //a.func1(12);
        
        /*
        Book b = new Book();
        b.setBookName("钢铁是怎么炼成的");
        
        String s = b.getBookName();
        System.out.println(s);
        
        b.setAvail(false);
        b.isAvail();
        */
        /*
        Book b1 = new Book();
        Book b2 = new Book("小人书");
        Book b3 = new Book("大人书", "王二小", 32, true);
        
        b3.printInfo();
        */
        
        //A a = new A();
        
        FangWen f = new FangWen();
        f.a = 12;
        System.out.println("a = " + f.a);
        
        f.setB(34);
        System.out.println("b = " + f.getB());
        
        f.c = 22;
    }

}


转载于:https://my.oschina.net/u/2282721/blog/389164

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值