精华内容
下载资源
问答
  • Java 成员变量和成员方法
    万次阅读 多人点赞
    2018-12-07 10:25:44

    在 Java 语言中对象的属性以成员变量的形式存在,对象的方法以成员方法的形式存在。

    成员变量

    在 Java 中对象的属性也称为成员变量。为了了解成员变量,首先定义一个图书类,成员变量对应于类对象的属性,在 Book 类中设置 3 个成员变量,分别为 id、name 和 category,分别对应于图书编号、图书名称和图书类别 3 个图书属性。

    例子:创建 Book 类,在该类中定义并使用成员变量

    public class Book {
        private String name;        //定义一个 String 类型的成员变量
        
        public String getName() {       //定义一个 getName 方法
            int id = 0;                     //局部变量
            setName("Java");            //调用类中其他方法
            return id + this.name;
        }
        
        private void setName(String name) {     //定义一个 setName 方法
            this.name =  name;                  //将参数值赋给类中成员变量
        }
        
        public Book getBook() {
            return this;        //返回 Book 类引用
        }
    }
    

    上述定义了三个成员变量。

    成员方法

    在 Java 语言中使用成员方法对应于类对象的行为。以 Book 类为例,它包含了 getName() 和 setName() 两个方法,这两个成员方法分别为获取图书名称和设置图书名称的方法。

    定义成员方法的语法格式如下:

    权限修饰符 返回值类型 方法名(参数类型 参数名){
        ...//方法体
        return 返回值;
    }
    

    一个成员方法可以有参数,这个参数可以是对象,也可以是基本数据类型的变量,同时成员方法有返回值和不返回值的选择,如果方法需要返回值,可以在方法体中使用 return 关键字,使用这个关键字后,方法的执行将被终止。

    Java 中的成员方法无返回值,可以使用 void 关键字表示

    更多相关内容
  • 类的成员变量和成员方法

    千次阅读 2019-12-27 10:48:07
    成员变量 成员变量的修饰 (1) public 公共变量,可被任何包中的任何类访问,只有在确认任何外部访问都不会带来不良后果的情况下才将成员声明为公共的,公共变量对任何类可见,不具有数据保护功能。 (2)private...

    1. 成员变量

    成员变量的修饰
    在这里插入图片描述
    (1) public 公共变量,可被任何包中的任何类访问,只有在确认任何外部访问都不会带来不良后果的情况下才将成员声明为公共的,公共变量对任何类可见,不具有数据保护功能。
    (2)private私有变量,由 private 修饰的变量称为私有变量,私有变量是不公开的,它们得到了最好的保护,这是对类进行封装时使用的主要方法。
    (3)protected 受保护变量,可以被声明它的类和派生子类以及同一个包中的类访问,而外界无法访问。
    (4)package(default),有 package 修饰的变量常常省略 package 关键字,即没有修饰符的成员被视为包成员。

    static 静态变量, **静态变量是类固有的,可以直接引用,其他成员变量仅仅在被声明、生成实例对象后才存在,**才可以被引用,因此,把静态变量称作类变量、把非静态变量称为实例变量。

    2. 成员方法和参数传递机制

    在Java中,方法只能作为类的成员,故称为成员方法。方法操作类定义的数据,以及提供对数据的访问的代码。

    大多数情况下,程序的其他部分都是通过类的方法和其他类的实例进行交互的,对象的行为由类的方法实现,其他对象可以调用另外一个对象的方法,通过消息(方法参数)的传递实现对该对象行为的控制。

    2.1 成员方法的声明与修饰

    [public] [private] [protected] [package] //访问控制修饰符 ,与成员变量的修饰符有相同作用。

    1. final 最终方法
      当方法被声明为最终方法后,将不能被子类覆盖,即最终方法能被子类继承和使用,但不能在子类中修改或重新定义。
    • 适用于: 保护一些重要的方法不被修改,尤其是那些对类的状态和行为有关键作用的方法被保护后,可以避免未知情况的发生。
    • 注意 : 有时不便于把整个类声明为最终类,这种保护太严格,不利于编程,此时可以有选择的把一些方法声明为最终方法,同样可以起到保护作用。
    1. abstract 方法
      一个抽象类可以含有抽象方法,抽象方法是指没有具体方法体的方法,该方法不能实现,所以抽象方法不能出现在非抽象类中
    • 使用抽象类和抽象方法的原因: 一个抽象类可以定义一个统一的编程接口,使其子类表现出共同的状态和行为,但各自的细节可以不同。子类共有的行为由抽象类中的抽象方法来约束,而子类行为的具体细节则通过抽象方法的覆盖来实现。这种机制可增加编程的灵活性,也是 OOP 继承树的衍生基础。

    例如,直线、圆和矩形等图形对象都有一些共同的位置(位置、边界)和行为(移动、改变大小、画出)。可以利用这些共性,把它们声明为同一个父类的子类,但是一个圆和一个矩形在很多细节方面又是不同的,这时,一个抽象父类是最佳选择。 子类继承父类后,可以通过覆盖方法实现自己的方法。

    1. 方法参数的传值方式
      一个对象和外部交换信息主要靠方法的参数来传递。在 Java中,可传递的参数包括任何数据类型,例如基本数据类型、数组和对象(没错,对象也可以)。
    class MyBox {
    	private int x, y, weight, height;public void draw(Graphics g){
    	g.drawRect(x,y,width,height);
    	}
    }
    

    Java虽然不能传递方法,但可以传递对象,然后调用该对象的方法。

    1. 可变参数
      返回值类型 方法名称(类型 参数名 1 , 类型 参数名 2, 类型…可变参数名){}

    向方法传递可变参数之后,其中可变参数以数组形式保存下来,如果方法中有多个参数,可变参数必须位于最后一项。

    展开全文
  • Java中成员变量和成员方法的使用

    千次阅读 2016-10-16 21:56:56
    package g.practise_myself;... 功能:成员变量和成员方法的使用  */ import java.io.*; public class Object  { public static void main(String[] args) { //创建一个人的对象 Person p1=new
    package g.practise_myself;
    /*作者:陈天祥
      时间:2016.10.7
      功能:成员变量和成员方法的使用
      */
    import java.io.*;


    public class Object 
    {


    public static void main(String[] args)
    {   //创建一个人的对象
    Person p1=new Person();
    //访问属性: 对象名.属性名字
    p1.age=3;
    p1.name="陈天祥";
    p1.address="成都新南路";
    //创建一个P2的人类对象
    Person p2=new Person();
    p2.speak();//调用说话的方法
    p2.run();//调用跑步的方法
    p2.jisuan();//调用计算的方法
    p2.jisuan(10);//调用传参计算的方法
    p2.add(15,65);//调用计算传多个参数的和的方法
    int result=p2.add1(65,45);//定义一个变量用来存放add1方法返回的结果
    System.out.println(result);//输出result的结果

    /*try{
    InputStreamReader inp=new InputStreamReader(System.in);

    BufferedReader buf=new BufferedReader(inp);
    System.out.println("请输入第一个数");
    String a1 = buf.readLine();
    int b1=Integer.parseInt(a1);
    System.out.println("请输入第二个数");
    String a2=buf.readLine();
    int b2=Integer.parseInt(a2);
    p2.add(b1,b2);



    }catch(Exception e)
    {
    e.printStackTrace();
    }*/


         
    }
    }


    class Person
    {   //类的成员变量(属性)
    int age;
    String name;
    String address;
    //类成员的行为(方法)
    public void speak()
    {
    System.out.println("我是一个大帅哥");
    }
    public void run()
    {
    System.out.println("我要开始跑步啦");
    }
    //计算1到1000的和
    public void jisuan()
    {
    int result=0;
    for(int i=1;i<=1000;i++)
    {
    result+=i;
    }
    System.out.println("1到1000的和为:"+result);
    }
    //计算1到n的和
    public void jisuan(int n)
    {
    int result=0;
    for(int i=1;i<=n;i++)
    {
    result+=i;
    }
    System.out.println("输出的结果是:"+result);
    }
    //计算两个数的和
    public void add(int a,int b)
    {


    int result;
    result=a+b;
    System.out.println("输出的结果是:"+result);
    }
    //计算两个数的和,并且把返回值返回给调用它的函数
    //注意:1.返回类型类型和返回结果的类型必须一样
    //    2.在调用某个成员方法的时候,给出的具体数的个数,和类型要相互匹配
    public int add1(int num1,int num2)
    {
    return num1+num2;
    }
    }

    展开全文
  • 员工类(Emploee):c=成员变量包含员工号和员工姓名,成员方法包含构造方法和输出方法(输出员工信息)。 (2). 部门主管类(Manager):从员工类继承而来,同时添加新的成员变量:主管部门名;添加构造方法,要调用...

    课后习题练习
    3.4 编写程序实现以下功能:
    (1).员工类(Emploee):c=成员变量包含员工号和员工姓名,成员方法包含构造方法和输出方法(输出员工信息)。
    (2). 部门主管类(Manager):从员工类继承而来,同时添加新的成员变量:主管部门名;添加构造方法,要调用父类Emploee的构造方法,覆盖父类中的输出方法,输出部门主管对象的信息。
    (3). 测试类(Test):包含一个主方法。在主方法中创建一个员工对象和一个部门主管类的对象,并调用输出方法显示员工信息和部门主管信息。

    3.5 定义一个极了Area,其中包含一个计算面积的方法CalsulateArea(),然后设计MyCircle和MyRectangle
    两个类都实现这个接口中的方法CalsulateArea(),分别计算圆和矩形的面积,最后写出测试以上类和方法的程序。

    3.6 编写程序完成以下功能:
    (1) 写出一个类people,其中people类具有name\age两个保护成员变量,分别为String类型、整型,且具有公有的getAge成员函数,用于返回age变量的值。
    (2) 以People类做基类派生出子类Employee和Teacher,Employee类具有保护成员变量empno,类型为String,Teacher具有私有成员变量teano,类型为String。
    (3) 定义接口Promaotion,其中包含成员函数hardwork。
    (4) 定义Manager类,该类从Employee派生并实现Promotion接口,包含私有成员Allowence,类型为float。
    ( 5) 所有类都具有构造函数。

    3.4

    public class Test {
    
    	public static void main(String[] args) {
    		Scanner s = new Scanner(System.in);
    		Emploee e = new Emploee();
    		Manager m = new Manager();
    		System.out.println("请输入员工的信息:");
    		e.setName(s.nextInt(),s.next());
    		System.out.println("请输入主管的信息:");
    		m.setName(s.nextInt(),s.next(),s.next());
    		e.print();
    		m.print();
    	}
    }
    class Emploee{
    	String name;
    	int n;
    	void setName(int n,String name){
    		this.n = n;
    		this.name = name;
    	}
    	void print() {
    		System.out.println("员工号为:" + n +"\n员工姓名为:" + name);
    	}
    }
    class Manager extends Emploee{
    	String name,position;
    	int n;
    	void setName(int n,String name,String position) {
    		this.n = n;
    		this.name = name;
    		this.position = position;
    	}
    	void print() {
    		System.out.println("主管号为:" + n + "\n主管姓名为:" + name + "\n主管部门为:" + position);
    	}
    }
     
    

    3.5

    public class TestArea {
    
    	public static void main(String[] args) {
    		Scanner s = new Scanner(System.in);
    		MyCircle c = new MyCircle();
    		MyRectangle r = new MyRectangle();
    		System.out.println("请输入圆的半径:");
    		c.calsulateArea(s.nextInt());
    		c.print();
    		System.out.println("请输入矩形的长和宽:");
    		r.calsulateArea(s.nextInt(), s.nextInt());
    		r.print();
    	}
    }
    class MyCircle implements Area{
    	int r;
    	double s;
    	void calsulateArea(int r) {
    		this.r = r;
    		s = r * r *3.141592653;
    	}
    	void print() {
    		System.out.println("半径为" + r + "的圆的面积为:" + s);
    	}
    	
    }
    class MyRectangle implements Area{
    	int a,b,s;
    	void calsulateArea(int a,int b) {
    		this.a = a;
    		this.b = b;
    		s = a * b;
    	}
    	void print() {
    		System.out.println("矩形的面积为:" + s);
    	}
    }
    

    接口

    public interface Area {
    
    	default void CalsulateArea() {
    		
    	}
    }
    //没错!空的就行!当然写点东西也可以嘛
    

    3.6就是熟悉一下各种东西,没啥意思不敲啦!
    打字好慢啊,TAT多练习多练习

    以下是老师留的第二次作业
    1.设计Point类用来定义平面上的一个点坐标,包含修改和读取方法、显示信息的方法。编写测试类PointTest,在该类中定义Point类的对象,并调用方法。
    2.编写一个学生类,成员变量和成员方法自拟,编写一个测试类。
    3.编写一个矩形类,包含成员变量:长和宽,成员方法:计算面积和计算周长;编写测试类,并创建对象显示结果。
    4.在code.a包中编写一个公有类A,包含私有成员x,缺省成员y,公有成员z;在code.b包中编写测试类Test,在main方法中创建A的对象,并访问x,y,z,以验证访问权限的作用。(成员数据类型自拟)
    第三次作业:
    1.编写复数类,为该类定义构造函数和信息输出方法,在测试类中完成2个复数对象的构建(从键盘录入)和输出。
    2.编写一个Dog类,成员变量自拟,要求能统计对象的创建个数,并编写测试类进行测试。
    (这里统计对象的创建个数原来是用static!))
    3.编写一个整数数组(长度为5),从键盘上依次输入所有的元素,对数组进行排序,然后用foreach输出所有的元素。
    4.定义一个double型数组d1,并进行初始化(长度为5-10之间),编写代码实现d1的克隆,并将其赋值给数组d2,要求d2中的元素与d1完全相同,且具有自己的内存空间
    (有自己的内存空间就是要new!)
    第四次作业:
    1.编写复数类,为该类定义构造函数和信息输出方法(这是第三次作业),在测试类中建立复数的数组(至少三个元素,赋值方式自拟),对输入的复数按照模的大小进行排序,并按照从大到小的顺序输出各个复数的值。
    2.编程一个类Compare,定义一个静态方法,用来比较两个String对象的大小,若字符串1和字符串2相等,返回0;若字符串1和字符串2不相等,则返回第一个不同字符的差值;若字符串1和字符串2仅长度不同,则返回两者长度的差值。定义测试类调用该方法。
    3.编程电脑类,然后派生台式机和笔记本两个子类,成员变量和成员方法自己定义。编程测试类分别创建3个类的对象,并调用所有的方法。
    以上几次作业由于当时没有上课所以不知道具体是上到哪里布置的,就统一放一起啦!

    展开全文
  • Java访问权限的修饰符public,private,protected,缺省(default)一个类中的成员变量和成员方法(非静态)被访问分为两种场景,一是在该类中,或其子类中访问,二是创建该类的对象进行访问。假设:有三个类 class ...
  • java中的成员变量和方法

    千次阅读 2021-02-28 18:12:12
    成员变量和方法一、成员变量我们都已经知道类体内容有两个成员:成员变量和方法成员变量用来刻画类创建的对象的属性,其中一部分成员变量称为实例变量,另一部分称为静态变量类变量。在定义成员变量时可以对其初始...
  • 如何访问类的成员变量和方法

    千次阅读 2021-03-09 09:42:37
    如何访问类的成员变量和方法在Java应用程序中,经常需要访问类的成员变量和方法,以实现程序的功能,请问应该如何访问类的成员变量和方法?在Java中通过类的实例(即对象)点(.)运算符来访问类的成员变量和方法,今天...
  • 上次我们已经介绍过java类变量和实例变量,今天我们再来看一下...简单来说,成员方法和成员属性就是属于这个类的方法和变量。它们的异同主要如下:⑴可以在类中存在的只有成员变量和成员方法,只要有一个方法就可以...
  • package org.westos_05_... * 可以修饰成员变量,也可以修饰成员方法  * 特点:被private修饰的成员只能在本类中访问,那么需要提供公共访问方法  * */ class Demo{ //成员变量 int num = 20 ; private int num2 =100 ;
  • Java成员变量成员方法

    千次阅读 2019-05-27 10:28:49
    学而时习之,温故而知新. 成员变量: ...成员变量可以被类中方法、构造方法和特定类的语句块访问。) 成员方法: 在Java中使用成员方法来对应与类对象的行为,在类中,除了变量外的都是成员方法。 一个案...
  • java成员变量和方法

    千次阅读 2018-08-11 23:33:25
    能在类中存在的只有成员变量和成员方法,只要是一个方法就可以称为成员方法,它只是方法的统称。 类包括成员变量和方法两部分。成员变量表示类的属性,一数据域的形式表达,方法是数据的操作的定义。 在JAVA中,...
  • this关键字调用成员变量和成员方法

    千次阅读 2018-06-02 20:32:15
    this 关键字可以调用类的成员变量和成员方法
  • 关键字super在构造方法中的含义: 1、当用子类的构造方法创建一个对象时,子类的构造方法总是先调用父类的某个构造方法; 2、当子类的构造方法没有明确地指明使用父类的哪个构造方法,那么子类就默认调用父类中不...
  • 静态成员变量不用new对象,在类加载的过程中就已经初始化存放在数据区域,静态成员变量是类所有对象共有的, 类对象都可以改变它的值,每一次改变值之后,静态成员变量的值在所有对象里面都将改变。   ...
  • 静态比对象先存在(所以找不到后来出现的对象,只能找到 同区域的静态值)。 静态值放在方法区的静态区 静态区没有new的地址有直接的联系,先于new出现。没有关于new的指向
  • 一起学JAVA 方法 局部变量 成员变量

    万次阅读 多人点赞 2021-04-01 23:59:30
    1 变量 1.1 概念 可以改变的数,称为变量。在Java语言中,所有的变量在使用前必须声明。 一般通过“变量类型 变量名 = 变量值 ;”这三部分来描述一个变量。...2.3 成员变量 位置:定义在类里方法外 注意:不用
  • this的另外一个用途就是当方法的局部变量与类成员变量重名时,在方法里面就隐藏了类的成员变量。此时可以通过this.成员变量的方式来访问,如下程序: //程序1: public class Student { String name; //定义学生...
  • 成员方法中调用成员变量语法格式 : …self .变量名 例: 成员方法中调用成员方法格式 : …self . 方法名(实参1 , 实参2, …) 例 : self : 仅出现在成员方法中 , 指代执行该方法的对象 ...
  • 被static修饰的成员变量和成员方法独立于该类的任何对象。 被类所有的实例所共享。 当声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例对象共用同一个static变量。这也就是说不管创建多少对象,...
  • 接口中的方法和成员变量

    千次阅读 2017-12-27 10:55:34
    接口Interface ...3. 接口中只能包含public、static、final类型的成员变量和public、abstract类型的成员方法。 4. 接口没有构造方法,不能被实例化,在接口中定义构造方法是非法的。 5. 一个接口
  • 二、成员变量修饰符 三.方法修饰符 1、类方法 2、实例方法 3、构造方法 4、方法的修饰符 四.类成员的访问控制符 修饰符 类 成员访求 构造方法 成员变量 ...
  • idea中类中显示成员变量和方法

    千次阅读 2019-08-21 09:38:34
    idea默认是没有显示一个类中的方法和成员变量的。 通过勾选Show Members就会显示类中方法。
  • //this 关键字:当局部变量和成员变量重名时,成员变量就会被隐藏,这是如果想在成员方法中使用成员变量,必须使用this 关键字 public class Fruit { public String color = "绿色"; public void harveat() { ...
  • Kotlin的类(成员方法成员变量

    千次阅读 2018-03-31 12:28:36
    一、首先看一个简单类和方法的实现 package net.println.kotlin.chapters /** * @author:wangdong * @description: */ /**定义一个女生类*/ class girl(var character: String, var appearance: String, var ...
  • 成员变量与全局变量的区别

    千次阅读 2021-03-10 04:18:54
    全局变量:也叫成员变量,是指在类中定义的变量;它在整个类中都有效全局变量又可分为:类变量实例变量1.类变量:又叫静态变量 用static修饰 它可以直接用类名调用 也可以用对象调用 而且所有对象的同一个类变量都...
  • 子类如果有父类一样的字段,那么dog实例中有两个name,一个是dog的成员变量,一个是Animal的成员变量,通过super也能访问到 子类内存空间里有父类的引用 如果子类实现了序列化接口,但是父类没有,那么父类...
  • This与成员变量成员方法、类变量类方法 说明:成员变量和成员方法必须被实例化之后才可以调用;(因为被实例化后才分配内存) 类变量类方法(即有static修饰的变量或方法)可以通过类名直接调用,(因为类被...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 990,463
精华内容 396,185
关键字:

成员变量和成员方法