Java类和对象(修饰符),及方法的使用

Java类和对象,及方法的使用

注意:面向对象编程(Object Oriented Programming,简称OOP)
简单地说:面向对象=对象(Object)+类(Class)+继承(Inheritance) +通讯(Communication
)。
java类:把具有相同属性及方法的事物归纳为一种类别,在java中利用代码实现的一种形式。
关键字:class
(1) 类对象:类通过实例化的方式,创建一个具有独立的属性与方法的实例(类是一个模糊的概念,对象才是真正在内存中存在), 类是类对象的依据,类对象是类的实例。(面向对象容易操作,但缺点是:会产生空指针异常)


/**
 * 电脑类
 * 没有实例化对象前,只存在于硬盘,并没有在内存中存在
 * 只有创建对象后,才会被得到内存的入口,从而进入内存
 */
public class Computer {
    /**
     * 属性(成员变量):对于事物的外在内容的一种描述
     */
    private String color;
    private double price;
    private String brand;

    //私有化成员,都会提供get和set方法,方便获取或修改成员的值

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    /**
     * 方法:类里面特有的一些功能
     * 一个java类里面只能有一个public类且类名必须与文件名一致,其中可以有n个类(不能有public关键字)
     * public
     * void:返回值类型(无返回值类型)
     */
    //最普通的方法
    public void method(){
        /*方法体*/
        System.out.println("颜色:"+color+",价格:"+price+",品牌:"+brand);
    }

    /**
     * 有返回值的方法
     * String表示开多大的内存给返回值
     * @return
     */
    public String getName(){
        String name="khy";
        char sex='男';
        //任何的基本数据类型加上""都是字符型类型
        return name+","+sex;//返回值,不能返回两个不同类型值
    }
    /**
     * 带参数的方法
     * ()里面的内容称为参数列表
     */
    public void method01(String name,int price){//形参
        System.out.println("传入的参数值:"+name+price);
    }
}

(2) 修饰符:

  1. public->表示被修饰的内容是公共的,使用范围:只要能够找到且创建该对象的地方都可以被使用
    无修饰符->表示不能跨工程使用(module也不行)
    • protected->表示被保护的,体现在继承或同一个package内的类可以相互访问
    • private->表示私有化,只有自身类可以访问
    • default->表示默认,使用default就相当于不添加控制访问的修饰符,它能修饰类,成员变量和方法,被default修饰的只能被同包下的类所访问
    • package->包变量,可被声明它的类和同一个包中的其他类(包括派生子类)所访问,在其他包中的子类则不能访问父类中的包成员
      修饰符	同类	同包	子类	不同包public	√	√	√	√protected	√	√	√	×private	√	×	×	×default	√	√	×	×package √ × √	 ×

方法的使用:
(3) void:无返回值
返回值:把该方法的运行结果,提供给其他方法使用的操作,最多只能返回一个类别的值(值,地址)(传参的方法有;值传递与地址传递)
1)值传递:传递的是值
2)地址传递:传递的是地址

public class Test02 {

    public static void main(String[] args) {
        //实例化对象
        Computer c=new Computer();
        c.setColor("橙色");
        c.setBrand("华为");
        c.setPrice(1000.0);
        c.method();
        String n="132";
        int u=10;
        /**
         *参数传递只与数据类型有关,与变量名没有关系
         * 参数传递有值传递和地址传递
         */
//        c.method01(n,u);
        int a=10;
        method(a);
        System.out.println("a1="+a);

        int[] as={12,45,78,36,5,5};
        method(as);//传递的是数组在内存的地址,地址里面放值已经被方法method()改变了
        System.out.println("输入as="+Arrays.toString(as));
    }
    /**
     * 方法名相同可以根据他们的参数列表去区别
     * ()里面的内容称为参数列表
     */
    /**
     * 值传递
     * 获取一次值,不能改变主类中a的值
     * 只能改变方法method中a的值
     */
    public static void method(int a){
        a++;
        System.out.println("a2="+a);
    }

    /**
     * 地址传递
     * 传递的是地址:方法可以改变地址里面的值
     * @param as
     */
    public static void method(int[] as){
        Arrays.sort(as);
    }
}

3)将类对象封装传递

public class Phone {
    private String brand;
    private double price;
    public static void main(String[] args) {
        Phone b=p();
        System.out.println(b.brand);
        System.out.println(b.price);

    }

    public static Phone p(){
        Phone a=new Phone();
        a.brand="小米";
        a.price=12000.00;
        return a;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值