精华内容
下载资源
问答
  • java的方法的方法体里面只能对象或者类调用方法是吧,不能再写方法了 如果可以写,可以有大括号包含的方法体吗
  • 在java学习中,面向对象思想是学习这门语言的核心,通过定义各种类和方法并调用 他们来出一个项目,这样在修改项目时可以通过修改里面的方法而不是直接修改整 个代码,达到了方便简单的目的,下面就用一个atm机...

    在java学习中,面向对象思想是学习这门语言的核心,通过定义各种类和方法并调用

    他们来写出一个项目,这样在修改项目时可以通过修改里面的方法而不是直接修改整

    个代码,达到了方便简单的目的,下面就用一个atm机提款流程来简单练习方法的使

    用,代码如下:


    package com.jredu.object;
    
    import java.time.Year;
    import java.util.Scanner;
    
    public class Atm {
    
    	//在这里为图方便直接在atm类中定义了密码类,建议正常书写时单独定义
    	public class Password {
    		private int password;
    
    		public Password(int password) {
    			super();
    			this.password = password;
    		}
    
    	}
    
    	// 类的属性声明
    	public int inputpassword;
    	Password psd = new Password(111111);
    	Scanner scanner = new Scanner(System.in);
    	int money = 0;// 用户选择的提款金额
    	int total = 20000;// 总金额
    
    	// 输入并验证密码部分
    	public void ipsd() {
    		for (int i = 3; i >= 1; i--) {
    			System.out.print("请输入密码:");
    			int input1 = scanner.nextInt();//获取输入的密码
    			//验证密码,共三次机会
    			if (input1 != psd.password) {
    				System.out.println("密码错误,请重新输入,还有" + (i - 1) + "次机会");
    				if (i == 1) {
    					System.out.println("密码错误,请取卡");
    					return;
    				}
    				continue;
    			} else {
    				amount();
    				return;
    			}
    		}
    	}
    
    	// 输入金额部分
    	public void amount() {
    		System.out.println("0.手动输入金额\t1.100元\t2.300元\t3.500元\t4.1000元\t5.3000元\t6.5000元");
    		int num = scanner.nextInt();//获取输入的数字
    		//用switch语句进行金额选择
    		switch (num) {
    		case 0:
    			System.out.print("请手动输入金额(必须要100元的倍数,最低100元,最高不超过1000元)");
    			money = scanner.nextInt();
    			if (!(money % 100 == 0 && money > 0 && money < 1001)) {
    				System.out.println("金额有误,是否继续(y/n)");
    				money = 0;
    			}
    			break;
    		case 1:
    			money = 100;
    			break;
    		case 2:
    			money = 300;
    			break;
    		case 3:
    			money = 500;
    			break;
    		case 4:
    			money = 1000;
    			break;
    		case 5:
    			money = 3000;
    			break;
    		case 6:
    			money = 5000;
    			break;
    		default:
    			System.out.println("输入有误,是否继续(y/n)");
    			money = 0;
    			break;
    		}
    		//在选择结束后进入到判断方法中
    		decide();
    	}
    
    	public void decide() {
    		// 根据金额扣除余额
    		if (money > 0) {
    			// 判断是否余额大于等于要扣除的金额
    			if (total > money) {
    				// 可以正确取钱
    				total -= money;
    				System.out.println("提款成功,余额:" + total + ",是否继续(y/n)");
    			} else if (total == money) {
    				// 可以取钱,结束程序
    				total = 0;
    				System.out.println("谢谢使用,请取卡");
    				return;
    			} else {
    				// 不可以取钱
    				System.out.println("余额不足,余额剩余" + total + ",是否继续(y/n)");
    			}
    
    		} 
    		//获取是否继续选项
    		String next = scanner.next();
    		//对获取的字符串进行判断,如果继续y就返回amount方法,否则输入语句后退出此方法
    		if (next.equals("y")) {
    			amount();
    		} else {
    			System.out.println("交易取消,请取卡");
    			return;
    		}
    	}
    //测试类
    	public static void main(String[] args) {
    		Atm ac = new Atm();
    		ac.ipsd();
    
    	}
    }
    


    展开全文
  • 我在两处地方开发,都是Eclipse,有一处地方就可以自动带出属性和方法名,还有一个地方就不行,这个是配置的还是编译器出了什么问题?
  • Python-类对象方法和类实例对象方法

    千次阅读 2018-06-05 13:33:26
    自己总结python类中类对象方法和类实例对象方法,其判断的方法是: (1)首先看方法定义是否引用了self,带了self,肯定为实例对象方法。 (2)其次,看是否带参数,如果不带参数,肯定是类对象方法。 (3)除了...

        自己总结python类中类对象方法和类实例对象方法,其判断的方法是:

     (1)首先看方法定义是否引用了self,带了self,肯定为实例对象方法。

     (2)其次,看是否带参数,如果不带参数,肯定是类对象方法。

     (3)除了以上两条外,至少带一个参数的方法定义,且没有classmethod标识的,肯定为实例对象方法(第一个参数实际上是类实例对象self,比较隐含),其他类对象方法。

       关于类对象方法怎么使用,大家可以参考我写的类对象方法一篇博文:https://blog.csdn.net/weixin_42039090/article/details/80580012,。

    请大家分析如下代码:

    # -*- coding: utf-8 -*-

    class Person(object):
        Count=0;
        _income=0;
        __Tel="13088888888"
        def __init__(self,name,number):
            self.name=name              #实例对象可以引用的两个成员:name和number,且公有的。
            self.number=number
        def __scolia__(self):   #这是实例对象方法,因为引用了self变量,当然,其他也可以哦。
            print("scola")
            return "scola"  
        def think(a):
            #这里用a,可以代替self。不加特别说明,这里默认think方法是实例方法。
            #判断根据是:要不没参数,要不加装饰器@classmethod,或者classmethod标识。
            print("name:",a.__class__.__name__)
            print("I am thinking")
        def Work():         #类方法,不是实例对象方法。
           print(Person.__Tel)
    #      print(Person.number)  类对象方法不能直接访问类实例对象的成员,即使是公有的,也不行。
           Person.__Tel="13562334563"
           print(" I am working!")
           print(Person.__Tel)
        def _Eat():              #保护类对象方法,也不是实例对象方法,在类继承中要注意。
            print("I am Eating")
        def __Sleep():           #私有类对象方法,不是类实例对象方法。
            print('I am Sleeping')
    #--------------类对象------------------------
    print(Person.Count)
    Person.Count+=1
    print(Person.Count)
    Person._income+=1000
    print(Person._income)
    #Person.__Tel #只能在类定义中引用,外部不能引用
    Person.Work()
    Person._Eat()
    #Person.__Sleep() 只能在类定义中引用,外部不能引用
    #---------------类实例化对象-------------------
    a=Person()
    Person.Count+=1 #类成员,实例一般不要轻易修改值。实例不改动类的属性值。a.Count没意义。
    print(Person.Count)
    a.think()       #定义时必须带参数。
    a.__scolia__()  #定义时必须带参数。

    #a.__Sleep()#更不能用。

    大家,加油!

    展开全文
  • Java序列化读写多个对象方法

    千次阅读 2018-03-21 16:19:51
    Person类用来序列化 public class Person implements Serializable{ private String name; private int age; public Person(String name, int age) { super();... } }方法一:存入文件时,...

    Person类用来序列化

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

    }

    方法一:存入文件时,将几个对象放入一个Object[] 数组中,然后再读取。

            private static void read() throws ClassNotFoundException, IOException {
    		//创建序列化流对象
    		ObjectInputStream ois = new ObjectInputStream(new FileInputStream("Object.txt"));
    		//读出
    		Object[] objArr =(Object[])ois.readObject();
    		for(Object obj : objArr) {
    			System.out.println(obj);
    		}	
    		ois.close();
    	}
    
    	private static void write() throws IOException {
    		//创建序列化流对象
    		ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("Object.txt"));		
    		//创建对象
    		Person[] p = {new Person("Mike",22), new Person("Like",44)};
    		//存入
    		oos.writeObject(p);
    		oos.close();
    	}

    方法二:一个一个放入,需要写完对象后加入null作为结束标志

    	private static void read() throws ClassNotFoundException, IOException {
    		//创建序列化流对象
    		ObjectInputStream ois = new ObjectInputStream(new FileInputStream("Object.txt"));		
    		Object obj =null;
    		while((obj=ois.readObject())!=null) {
    			System.out.println(obj);
    		}	
    		ois.close();
    	}
    
    	private static void write() throws IOException {
    		//创建序列化流对象
    		ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("Object.txt"));	
    		//创建对象
    		Person p1 = new Person("Mike",22);
    		Person p2 = new Person("Like",44);
    		//存入
    		oos.writeObject(p1);
    		oos.writeObject(p2);
    		oos.writeObject(null);//加入null 用来判断是否到末尾,如果不加会报错EOFException 
    		oos.close();
    	}

    方法三:用available判断是否达到了文件末尾

    	private static void read() throws ClassNotFoundException, IOException {
    		//创建序列化流对象
    		FileInputStream fis = new FileInputStream("Object.txt");
    		ObjectInputStream ois = new ObjectInputStream(fis);	
    		//读取
    		Object obj =null;
    		while(fis.available()>0) {
    			obj=ois.readObject();
    			System.out.println(obj);
    		}	
    		ois.close();
    	}
    
    	private static void write() throws IOException {
    		//创建序列化流对象
    		ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("Object.txt"));		
    		//创建对象
    		Person p1 = new Person("Mike",22);
    		Person p2 = new Person("Like",44);
    		//存入
    		oos.writeObject(p1);
    		oos.writeObject(p2);
    		oos.close();
    	}

    展开全文
  • 我是这个意思,现在有个功能,一个方法,但是不确定用户会传什么对象过来,有可能是用户自定义的对象。 我现在是想用户传一个对象过来,比如用户传了People对象,那我的方法返回值就给他返回一个我修改过的People...
  • 以优雅直观的方式调用JAVA对象方法和读写JAVA对象成员在 JNI (Java Native Interface, http://java.sun.com/javase/6/docs/technotes/guides/jni/index.html) 中,涉及调用JAVA对象方法的函数主要有:jmethodID ...

    以优雅直观的方式调用JAVA对象方法和读写JAVA对象成员


    在 JNI (Java Native Interface, http://java.sun.com/javase/6/docs/technotes/guides/jni/index.html) 中,涉及调用JAVA对象方法的函数主要有:

    jmethodID GetMethodID(JNIEnv *env, jclass clazz, const char *name, const char *sig);

    void CallVoidMethod(JNIEnv *env, jobject obj, jmethodID methodID, ...)
    jobject CallObjectMethod(JNIEnv *env, jobject obj, jmethodID methodID, ...)
    jboolean CallBooleanMethod(JNIEnv *env, jobject obj, jmethodID methodID, ...)
    jbyte CallByteMethod(JNIEnv *env, jobject obj, jmethodID methodID, ...)
    jchar CallCharMethod(JNIEnv *env, jobject obj, jmethodID methodID, ...)
    jshort CallShortMethod(JNIEnv *env, jobject obj, jmethodID methodID, ...)
    jint CallIntMethod(JNIEnv *env, jobject obj, jmethodID methodID, ...)
    jlong CallLongMethod(JNIEnv *env, jobject obj, jmethodID methodID, ...)
    jfloat CallFloatMethod(JNIEnv *env, jobject obj, jmethodID methodID, ...)
    jdouble CallDoubleMethod(JNIEnv *env, jobject obj, jmethodID methodID, ...)

    以上函数,除了 GetMethodID() 之外,同属于一个系列:CallXXXMethod(),它们的参数是相同的,只是返回值和函数名称不同。CallXXXMethod() 系列函数用于调用对象的实例方法(Instance Methods),还有另外两个系列函数 CallStaticXXXMethod(), CallNonvirtualXXXMethod(),分别用于调用静态方法(Static Methods)和非虚拟方法(Nonvirtual Methods)。在以上三个系列中的任一函数,又都有三种变形,主要是接收的参数不同:

    XXX CallXXXMethod(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
    XXX CallXXXMethodA(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, jvalue *args);
    XXX CallXXXMethodV(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, va_list args);

    这样算下来,JNI中仅用于调用JAVA方法的函数就多达 10 * 3 * 3 = 90 个(未计算 GetMethodID(), GetStaticMethodID(), GetNonvirtualMethodID())。想想都有些眼晕了~!@#$%^&*()。没办法,在C语言中,一个函数只能有一个确定的返回值类型,参数也无法重载。(从应用程序开发者的角度出发,并无所谓函数的多少,需要哪个就调用哪个嘛;从类库开发者的角度出发,还是希望提供最简洁的接口,以方便应用程序开发者。)

    可是在“易语言.飞扬”(http://blog.csdn.net/efdev/)中,用于调用JAVA方法的函数(方法)仅仅只有 3 个:

    通用型 JObject.调用方法(JMethod 欲调用的方法, 通用型 参数 <扩展开始>, ...)
    通用型 JObject.调用非虚方法(JClass 欲调用方法所属类, JMethod 欲调用的方法, 通用型 参数 <扩展开始>, ...)
    通用型 JClass.调用静态方法(JMethod 欲调用的方法, 通用型 参数 <扩展开始>, ...)

    因为“通用型”数据类型的存在,不需要再针对每一个类型的返回值分别使用单独的方法,这是最主要的简化之处。另外,JNIEnv*, jobject, jclass, jmethodID 等已经不复存在,被分别封装成了EF对象,进一步简化之,并且OO化了。


    在 JNI 中,涉及读写JAVA成员的函数主要有:

    jfieldID GetFieldID(JNIEnv *env, jclass clazz, const char *name, const char *sig);
    XXX GetXXXField(JNIEnv *env, jobject obj, jfieldID fieldID);
    void SetXXXField(JNIEnv *env, jobject obj, jfieldID fieldID, XXX value);

    jfieldID GetStaticFieldID(JNIEnv *env, jclass clazz, const char *name, const char *sig);
    XXX GetStaticXXXField(JNIEnv *env, jclass clazz, jfieldID fieldID);
    void SetStaticXXXField(JNIEnv *env, jclass clazz, jfieldID fieldID, XXX value);

    算下来,JNI中仅用于读写类/对象成员的函数就多达 10 * 4 = 40 个(未计算 GetFieldID(), GetStaticFieldID)。看起来也够眼晕的。

    可是在“易语言.飞扬”(EF)中,用于读写JAVA类/对象成员的函数(方法)只有 4 个:

    通用型 JObject.取成员值(JField 欲取其值的成员);
    逻辑 JObject.置成员值(JField 欲置其值的成员, 通用型 值);
    通用型 JClass.取静态成员值(JField 欲取其值的成员);
    逻辑 JClass.置静态成员值(JField 欲置其值的成员, 通用型 值);


    总结:1、大大减少了函数(方法)数量;2、对接口进行了面向对象(OO)化设计。 

     

    展开全文
  • JAVA对象属性方法的使用

    万次阅读 2020-07-07 20:38:50
    文章目录面向对象编程(OOP)类名对象属性方法对象、属性、方法的堆、栈一个类创建多个对象,以及内存图展示代码图解两个引用指向一个对象代码图解方法对象如何调用 面向对象编程(OOP) Object Oriented Programming ...
  • 我用的是 vs2010 用模版自动生成的只加了一个方法,然后自己了一个vbs脚本调用这个方法正常,用的是控件名创建的对象。在网页中控件也创建成功的用的是classid方式创建的,但是调用这个方法就是提示对象不支持此...
  • 数组里面对象去重的3种方法

    万次阅读 2019-06-10 20:54:31
    数组里面对象去重的方法挺多的,下面列了几种方法任君选择! 下面是将要过滤的数据,将arr里面id重复的数据去掉(下面方法中用的arr都是这组数据哦)。 var arr = [ {id: 1, name: '周瑜1'}, {id: 3, name: '...
  • Java 类、对象方法

    万次阅读 2019-10-13 15:57:34
    Java 类、对象方法(一)类的基础知识如何创建对象引用变量和赋值方法 类的基础知识 类是定义对象形式的模板,指定了数据以及操作数据的代码。 Java中使用类的规范来构造对象,而对象是类的实例。 类是逻辑抽象的...
  • 今天给大家讲一个对象对象集合转json数据的三种方法,三种方法最终达到的效果是一样的。 1,jsonlib:个人感觉最麻烦的一个需要引入的包也多,代码也相对多一些。 2,Gson:谷歌的 3,FastJson:阿里巴巴的,...
  • js 对象方法(实例方法) 类方法 原型方法 function Animal() { //实例属性 this.name = name || 'Animal'; //实例方法 this.sleep = function () { console.log(this.name + "正在睡觉") } this....
  • JAVA面向对象之构造方法

    千次阅读 2015-12-22 21:39:51
    语句来创建一个对象,new可以理解成创建一个对象的关键字,通过new关键字为对象分配内存,初始化实例变量,并调用构造方法。Box()在形式上和调用方法的形式相同,这个Box()就是一个特殊的方法叫构造方法。但是我们在...
  • protobuf的优势这里就不细说了,这里给java开发童鞋们分享一个可以将普通java对象转换成.proto生成的java对象方法,大家在编完.proto文件后生成java对象后,肯定都遇到过一个问题,就是不同的对象构造方法不一样...
  • 经常是要处理服务接口返回的数据的,因此会将服务器数据(一般为json)转换为Model对象模型,但是有时候会有把一个model的属性值赋值给另一个model属性值的情况,例如一个模块或者方法只要求你传一种对象,...
  • OC面向对象方法

    千次阅读 2014-09-27 15:40:30
    OC面向对象方法 设计一个Caculator计算器类,它拥有计算的功能(行为) 1不带参数的方法 设计一个返回PI的方法 //方法声明 -(double)pi; //方法实现 -(double) pi {  return 3.1415926; } 方法声明   方法...
  • 这种方法好处在于 如果过你有判断条件的话 可以在判断去新增参数 不好的地方在于,你需要对实体类一个RowMapper文件用来塞值完RowMapper文件后别忘了把对象返回。 二、 这种方式就不再需要RowMapper文件。...
  • 但是这种方法不管是ES6还是ES5实现,都有同样的缺陷,就是只能实现特定的object的深度复制(比如数组和函数),不能实现包装对象Number,String , Boolean,以及Date对象,RegExp对象的复制。 1 . 前文的方法 ...
  • js对象方法大全

    万次阅读 多人点赞 2019-03-15 15:53:29
    JavaScript中Object构造函数的方法 Object构造函数的方法节 Object.assign() 通过复制一个或多个对象来创建一个新的对象。 Object.create() 使用指定的原型对象和属性创建一个新对象。 Object.defineProperty...
  • JAVA 面向对象方法详解

    千次阅读 2016-07-17 23:08:29
    所有的方法都必需定义在类. 方法不能独立存在. 方法在逻辑上要么属于类, 要么属于对象. 方法的所属性 一旦将一个方法定义在某个类的类体内. 如果这个方法使用了static修饰符,则这个方法属于这个类. 否则...
  • 代码的过程中 我们经常会遇到这样一个问题–如何获得某一个对象的类型名。JavaScript是一种弱类型的语言,通常,我们获取一个对象的类型名会想到typeof方法。但是,当我们想要获得一个自定义类型的兑现的类型名...
  •  4、 一个方法,此方法可将obj对象中名为propertyName的属性的值设置为value. public void setProperty(Object obj, String propertyName, Object value){ } 思路:1.定义一个用来演示的类,再创建该类...
  • VBA IE对象的操作方法

    千次阅读 2016-08-21 15:26:50
    VBAIE对象的操作方法 (2013-10-27 11:39:29) http://blog.sina.com.cn/s/blog_64173e0c0101bf9o.html 转载▼ 标签: vba ie 标签 对象 图片 it 分类:...
  • 一个公共方法,传List对象数组进来,能解析出对象的指定属性值,由于对json这方面不是很熟,求大神帮帮忙。![图片说明](https://img-ask.csdn.net/upload/201710/28/1509189822_294593.png)
  • 通常情况下在父类中不能直接调用子类中的方法(重写的除外),但是在某些特殊的情况下,需要根据一个父类的对象来调用子类的方法,原理就使用java的反射原理。例如:Person类,有一个name属性 public class Person { ...
  • redis存储对象方法

    千次阅读 2014-03-08 09:07:33
    一,redis没有直接存储对象方法,不过redis要以存储字节,所以可以先把对象自己的一个序列化和反序列化的方法。 package com.gametech.utils; import java.io.ByteArrayInputStream; import java.io....
  • 对象方法的调用

    千次阅读 2017-09-13 16:19:14
    第一章 类和对象 概念 类:具有相同属性和行为的一组对象的集合和抽象 系统定义的类 用户自定义的类 对象:具体的实例,类的实例化,有一组属性和方 法组成(万物皆对象) 关系 类的实例化是对象 对象的抽象是实例...
  • SpringAop中JoinPoint对象的使用方法

    千次阅读 2018-04-14 15:30:57
    JoinPoint对象封装了SpringAop中切面方法的信息,在切面方法中添加JoinPoint参数,就可以获取到封装了该方法信息的JoinPoint对象. 常用api: 方法名 功能 Signature getSignature(); 获取封装了署名信息的...
  • 在我们开发中,会遇到贼多问题,之前我有过一篇原生与js互相调用的博客,我们知道用es5的代码的方法function xxxx(){},它的直接window对象的。 但是用vue方法,要在android与ios原生中怎么调用呢,这种...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,580,996
精华内容 1,032,398
关键字:

对象里写方法