zoukankan      html  css  js  c++  java
  • JAVA入门到精通-第6讲-成员属性-成员方法

     b.age=10;
     
     
    它是根据age和name所占的数据类型还划分空间的;
    b没有赋值,孤零零地放在那;
    b=a;
    让b也指向a所指向的空间,实际上是一个引用;
     
     
    再次证明,其实指向的是同一块空间;引用传递的特点;

    程序员用new的方法创建一个对象,在内存里面存放;
    内存有创建就应该有回收,JAVA有内存回收机制
    JAVA虚拟机发现没有对象指向的时候,会认为它是垃圾;
    a=null;      //a不再指向对象,是一个垃圾,会在适当的时候回收内存
    C++里面开辟的内存,需要及时回收,delete/free。

    成员方法(成员函数):
     
    一个class里面的最简单的方法:
     如何使用这个方法?
     
     
    JAVA命名规范:
     //speak
     
    //jisuan

     
     
    //参数列表,表示函数接收的参数
    输入参数自动计算,比较灵活;
     
     result和不同的方法里面的作用域不一样,不会冲突;

     函数名重复,但不会冲突;
    JAVA编译器比较聪明,如果有参数输入会自动区分开来;
    函数名一样,参数不一样,函数的重载;

    当传100会调用有参数列表的方法;
    不传参数会调用没有参数列表的方法;

    函数调用的原理图:
    1.执行main过程中如果看到调用函数,会开辟新栈;
    2.和main函数的栈是完全独立的;
    3.代码跳转开始执行;
    4.控制台输出结果,执行完又回到原来的main那里去了;
    5.main又开始执行;



    要透彻的掌握类,必须要了解类的构成

    class 类名{      ---->   待定...

      成员变量;

    }

     

    --类的成员变量

    成员变量是类的一个组成部分,一般是基本数据类型,也可是引用类型。比如我们前面定义猫类的int age 就是成员变量。

     

    对象--如何创建对象

    创建一个对象有两种方法

    1、先声明再创建

     1、对象声明:类名 对象名

     2、对象创建:对象名=new 类名()

     

    2、一步到位法

      类名 对象名=new 类名()

     

    对象--如何访问(使用)对象的成员变量

      对象名.变量名; //简单先这样理解,以后加下控制符此表达就不准确了。


    ***对象总是存在内存中的

     

    一个小思考题[Demo.105.java]

    为了让大家加深印象,我们定义一个人类(Person)(包括名字、年龄)。用一步到位法去创建一个对象

       

    我们看看下面一段代码:System.out.printlin(b.age);

     
    1
    Person a=new Person();                    请问:b.age究竟是多少?
    2
    a.age=10;
    3
    a.name="小明";
    4
    Person b;
    5
    b=a;

    ***对象总是存在内存中的

    一个小思考题[Demo106.java]

    在明白对象是如何在内存中存在后,请大家再看看下面的思考题,请问会输出什么信息?

     
    1
    Person1 a=new Person1();
    2
    a.age=10;
    3
    a.name="小明";
    4
    Person1 b;
    5
    b=a;
    6
    System.out.println(b.name);//输出“小明”
    7
    b.age=200;
    8
    System.out.println(a.age);//输出a.age为200

     

    *****重点也是难点

    --成员方法的初步介绍

    在某些情况下,我们要需要定义成员方法。比如人类:除了有一些属性外(成员变量表示的年龄、姓名...),我们人类还有一些行为比如:可以说话、跑步..,通过学习,我们人类还可以做算术题。这时就要用成员方法才能完成。现在要求对Person类完善:

    1、添加speak成员方法,输入出:我是一个好人

    2、添加jisuan成员方法,可以计算从1+..+1000的结果

    3、修改jisuan成员方法,该方法可以接收一个数n,计算从1+..+n的结果

    4、添加add成员方法,可以计算两个数的和

     


    --类的成员方法(成员函数)定义

    成员方法也叫成员函数,这里希望大家不要被两个名词搞晕了。

        public 返回数据类型 方法名(参数列表)

        {

           语句;//方法(函数)主体

        }

    1、参数列表:表示成员函数输入

    2、数据类型(返回类型):表示成员函数输出

    3、函数主体:表示为了实现某一功能代码块

     

    //类的调用及方法调用[Demo108.java]

    public class Demo108{

        public static void main(String []args){

        Person p1=new Person();

        p1.speak();//调用speak方法

        p1.jiSuan();//调用计算方法

        p1.jiSuan(200);//调用可以传入参数的计算方法

        p1.add(12,10);//调用两个数的和

       

        int res=p1.add2(23,34);//调用两个数的和并返回值到res

        System.out.println("res返回值是:"+res);

        System.out.println("num1+num2+num3="+p1.add3(2,2.3f,4.5f));//返回类型一定要一致否则报错。

    }

    }

    //定义名字的几个方法:

    //1、驼峰法 如myCry2、下划线法my_cry

    //方法名在有不同参数的情况下可以使用同一个方法名,即有参数和没参数的方法可以同名

    class Person{ //请注意类名首写字母应为大写如Person为类名

        int age;

        String name;

        //1、可以输出我是好人方法

        public void speak(){  //请注意方法名的首写字母应为小写如speak为方法名

            System.out.println("我是一个好人");

        }

        //2、可以计算1+..+1000的方法

        public void jiSuan(){

            int result=0;

            for(int i=1;i<=1000;i++){

                result=result+i;

            }

        System.out.println("1+..+1000结果是"+result);

        }

        //3、带参数的成员方法,可以输入n值并计算1+..+n

        public void jiSuan(int n){

            int result=0;

            for(int i=1;i<=n;i++){

                result+=i;

            }

            System.out.println("1+..+n结果是"+result);

        }

     

     

        //4、计算两个数的和

        public void add(int num1,int num2){

            int result=0;   //与下面一句等同于return num1+num2;

            result=num1+num2;

            System.out.println("num1+num2="+result);

        }

     

        //5、计算两个数的和,并将结果返回给主调(调用它的)函数

        //注意:返回类型和返回结果的类型要一致

        //注意:在调用某个成员方法的时候,给出的具体数值的个数

        //和类型要相匹配。

        public int add2(int num1,int num2){

            return num1+num2;

        }

        //6、计算两个float数的和,并将结果返给主调函数

        public float add3(int num1,float num2,float num3){

            return num1+num2+num3;

        }

    }

     
     






  • 相关阅读:
    Coding过程中遇到的一些bug
    Git GUI的使用
    CMD控制台下的JAVAC就是“不是内部或外部命令
    Android TextView 设置滚动条(纯xml)
    Referenced file contains errors (http://www.springframework.org/schema/aop/spring-aop-3.0.xsd). For more information, right click on the message in th
    Eclipse工具栏上android的机器人小图标不见了
    eclipse indigo 安装 Eclipse Marketplace Client
    eclipse导入android项目错误,项目名称上有红叉,但代码中无报错
    Git GUI 的使用
    Android GridView 行间距过大(一页一行)
  • 原文地址:https://www.cnblogs.com/xuxaut-558/p/10044134.html
Copyright © 2011-2022 走看看