zoukankan      html  css  js  c++  java
  • 创建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);
        } 
    }
  • 相关阅读:
    利用单片机构成高精度PWM式12位D/A
    【转】FORMAT在DELPHI中的用法
    可定时温湿控制器
    用C#获取硬盘序列号,CPU序列号,网卡MAC地址
    Oracle笔记:查询表相关
    Oracle笔记:视图
    Oracle笔记:维护数据的完整性
    Oracle笔记:索引
    Oracle笔记:pl/sql例外处理
    Oracle笔记:逻辑备份与恢复
  • 原文地址:https://www.cnblogs.com/KeepCalmAndNeverSayNever/p/10111448.html
Copyright © 2011-2022 走看看