Java学习之类和对象

Java学习之类和对象

package project.p5;

public class Person {
    private String name;
    private int age;
    private String address;
    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 String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
}

5.3方法

// 语法格式:
// [访问符][修饰符]<返回值类型> 方法名([参数列表]){//方法体}
// 定义一个公共的计算圆面积方法

    public double area(double rouble){
        return Math.PI*rouble*rouble;
    }

// 定义一个私有的静态的求和方法

    private static int add(int a,int b){
        return a+b;
    }

// 定义一个保护型最终的显示信息方法

    protected final void display(){
        System.out.println("Hello world;");
    }

5.3.2方法的参数传递机制

// (1)值传递;

    public void display(int a,int b){
        int temp=a;
        a=b;
        b=temp;
        System.out.println("a="+a+",b="+b);
    }

// (2)引用传递;使用类方法创建对象,可以改变变量值

    public static void display(mydata item,int a,int b){
        item.setA(a);
        item.setB(b);
    }

5.3.3构造函数

是类的同名方法,只在类被构造的时候被调用
// 语法结构如下:
// [访问符]构造方法名([参数列表]){
// // 初始化语句
// }

public class Person {
    private String name;
    private int age;
    private String address;
    public Person(String name, int age, String address) {
        this.name = name;
        this.age = age;
        this.address = address;
    }
    public Person(String name){
    	this.name=name;
    }
}

5.3.4方法重载

// (1)在同一个类中;
// (2)方法名相同
// (3)方法的参数类型、个数及顺序至少有一项不同;
// (如上的构造函数已经开始重载)

5.3.6 this关键字

// this表示当前实例,可以出现实例成员方法和构造函数中,不可以出现在类成员方法中;
// 1.this的第一种用法:

    public class ThisFirstExample{
        private double length;
        private double width;
        private double height;
        public ThisFirstExample(double length, double width, double height){
            this.length = length;
            this.width = width;
            this.height = height;
        }
        public double getLength() {
            return length;
        }
        public void setLength(double length) {
            this.length = length;
        }
        public double getWidth() {
            return width;
        }
        public void setWidth(double width) {
            this.width = width;
        }
        public double getHeight() {
            return height;
        }
        public void setHeight(double height) {
            this.height = height;
        }
        public void display(){
            System.out.println("length="+length+",width="+width+",height="+height);
        }
        public static void main(String[] args){
            ThisFirstExample obj = new ThisFirstExample(10,20,30);
            obj.display();
        }
    }

5.3.7可变参数

// 语法格式如下:
// [访问符][修饰符]<返回值类型>方法名([参数列表],数据类型… 变量){
// // 方法体
// }
// 可变参数需要注意以下几点:
// 1.可变参数只能处于参数列表的最后;
// 2.一个方法中最多只能包含一个可变参数;
// 3.可变参数的本质就是一个数组,因此在调用一个包含可变参数的方法时,既可以传入多个参数,也可以传入一个数组

    public class ChangeParamExample{
        public static int add(int a ,int... b){
            int sum=a;
            for(int i=0;i<b.length;i++){
                sum+=b[i];
            }
            return sum;
        }
        public static void main(String[] args){
            int[] a={1,2,3,4,5,6};
            System.out.println("3+4="+add(3,4));
            System.out.println("4+5+6="+add(4,5,6));
            System.out.println("sum(a[]+0)="+add(0,a));
        }
    }

// 2.第二种方法:就是在构造方法中调用本类中的其他方法

public class Person {
    public void Person(String str){
        System.out.println(str);
        this.display();
    }
}

5.3.5 static关键字

// 语法格式:
// 类名.静态方法名(形参列表)
// 类名.静态变量名
// 当java虚拟机加载类时,静态代码被一次性执行,称为加载时执行。若类中有多个静态代码块,jvm将按照他们出现的先后顺序依次执行,且每个代码只被执行一次
// 静态类,只能调用静态变量和静态方法。不能使用this和super方法

class StaticText{
    int a;
    static int b;
    static{
        a=10;//错误的写法,不能调用非静态方法以外的方法
        b=15;
        System.out.println("这是静态块的方法!b="+b);
    }
    public static void display(){
        System.out.println("a="+a);//错误方法,不能调用非静态方法以外的方法
        System.out.println("b="+b);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸡不敢说自己菜鸡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值