创建java类并实例化类对象

创建java类并实例化类对象例一
1.面向对象的编程关注于类的设计
2.设计类实际上就是设计类的成员
3.基本的类的成员,属性(成员变量)&方法

面向对象思想的落地法则一:
1.设计类,并设计类的成员(成员变量&成员方法)
2.通过类,来创建类的对象(也称作类的实例化)

public class zoo {
    public static void main(String[] args) {
        //基本数据类型的声明,数据类型 变量名=初始化值
        //类的实例化:如a1就是一个对象
        Animal a1=new Animal();
        //通过对象调用属性
        a1.name="阳阳";
        a1.age=3;
        System.out.println("name:"+a1.name+" age:"+a1.age);
        //通过对象调用方法
        a1.eat();
        a1.sleep();
    }
}

class Animal{
    //1.属性
    String name;
    int age;
    //2.方法
    public void eat(){
        System.out.println("动物进食");
    }
    public void sleep(){
        System.out.println("动物睡觉");
    }
    //getName是得到name的值
    public String getName(){
        return name;
    }
    //setName是给name设计一个值
    public void setName(String n){
        name=n;
    }
}


二、创建多个对象,彼此各自拥有一套类的属性,当对其中一个属性进行修改时,不会影响到其他对象的属性
类对象的内存解析

public class zoo {
    public static void main(String[] args) {
        int i = 10;
        //基本数据类型的声明,数据类型 变量名=初始化值
        //类的实例化:如a1就是一个对象
        Animal a1 = new Animal();
        //通过对象调用属性
        a1.name = "阳阳";
        a1.age = 3;
        System.out.println("name:" + a1.name + " age:" + a1.age);
        //通过对象调用方法
        a1.eat();
        a1.sleep();
        //再创建一个类的对象
        Animal a2 = new Animal();
        System.out.println("name:" + a2.name + " age:" + a2.age);
        a2.name = "小花";
        System.out.println("name:" + a1.name + " age:" + a1.age);
        System.out.println("name:" + a2.name + " age:" + a2.age);
        //a3不意味着相较于啊a1重新创建的一个对象,而是a1与a3公用一个对象实体
        Animal a3 = a1;
        System.out.println("name:" + a3.name + " age:" + a3.age);//与a1一样
        a3.name = "维尼熊";
        System.out.println("name:" + a1.name + " age:" + a1.age);
    }
}

    class Animal {
        //1.属性
        String name;
        int age;

        //2.方法
        public void eat() {
            System.out.println("动物进食");
        }

        public void sleep() {
            System.out.println("动物睡觉");
        }

        //getName是得到name的值
        public String getName() {
            return name;
        }

        //setName是给name设计一个值
        public void setName(String n) {
            name = n;
        }

    }


三、类的属性(成员变量)
成员变量vs局部变量
局部变量:是在某个方法中的变量
成员变量:在类中定义的变量
在类中没有在其他方法中定义的变量就是成员变量
如public class tip{
int j=10;
}
这个里面的j就是成员变量

public void setName(String n){}
中的n就是一个局部变量
或者是在方法里面定义的也叫局部变量如:
public void addAge(){
int i=2;
age +=i;
}
中的int i=2;这个也是局部变量
成员变量和局部变量的相同点:
1.格式都一样: 数据类型 变量名 = 初始化值
2.都有作用域:局部变量作用在它所存在的方法中,方法变量作用在它所存在的类中。
一旦出了它们所存在的范围就不能使用,除非通过对象的调用(如:.name来调用)

成员变量和局部变量的不同点:
1.声明的位置不同:成员变量声明在类里,方法外。局部变量声明在方法内,和方法的形参部分(public void setName(String n){}的n)
代码块内
2.成员变量的修饰符有四个:public、private、protected、缺省(就是省略不写)(如public class v{
int b=2;
}这里的int前面可以加修饰符)
局部变量没有修饰符,与所在的方法修饰符一样(如public void addAge(){
int i=2;
age +=i;
}这里的i是局部变量,修饰符就是方法的修饰符public)
3.初始化值无论哪种变量都有初始化值,成员变量如果没有赋值不同的数据类型则有默认的初始化值。
局部变量一定要显示赋值,因为局部变量没有默认的初始化值
4.二者在内存中存放的位置不同:成员变量存在于堆空间中,局部变量存在于栈空间中
四、类的方法:提供某种功能的实现
1.格式:权限修饰符(public、private、protected、缺省(就是省略不写)) 返回值类型(void:无返回值/具体返回值) 方法名(形参,String等){}

2.关于返回值类型:void,表明不需要返回值。
如:public void eat{
System.out.println("进食");
}
有返回值的类型:在方法最后一定有return+返回值类型对应的变量
如:public int getAge(){
return age;
}
记忆:void与return不能同时出现在一个方法内,像一对冤家
3.方法内可以调用本类的其他方法或属性,但是不能在方法内定义方法


//(1)
public class W {
    String name;
    int age;
    String sex;

    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 getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public void study(){
        System.out.println("studying");
    }
    public void showAge(){
        System.out.println(age);
    }
    public int addAge(int i){
        age+=i;
        return age;
    }

    public static void main(String[] args) {
        W a=new W();
        a.study();
        a.showAge();
        a.addAge(2);
        a.showAge();//相等于System。out。println(a.age);
        System.out.println();
        //(2)
        W b=new W();
        b.showAge();
        a.showAge();
    }
}
public class circle {
    public static void main(String[] args) {
        Tcircle c1=new Tcircle();
        c1.r=2.3;
        c1.findArea();
    }
}
class Tcircle{
    double r=1.0;
    //提供一个方法,用来获取圆的面积
    public void findArea(){
        System.out.println(3.14 * r * r);
    } 
}

 

posted @ 2018-12-12 22:29  T&K  阅读(3266)  评论(0编辑  收藏  举报