对于以下代码,
- Objective-C如何知道在复数中添加"i"?当我在Complex.m文件中将"real"和"imaginary"定义为double值时,我认为Xcode只知道"real"和"imaginary"是double值.
- 如果我在main.m文件中的复数的末尾添加"i",例如,如果我转为"myComplex.imaginary = 7;" 进入"myComplex.imaginary = 7i;" 该行的输出变为0.00000i,如果我添加任何其他字母,程序将无法运行,为什么会这样?
基本上在我看来,Xcode已经知道"真实"和"想象"的含义,我所遵循的那本书没有具体说明,所以我有点困惑.
此外,我应该注意,我没有创建以下代码,因为我无法自己解决问题,此代码是从我的书籍论坛成员复制的.
// Complex.h
#include <Foundation/Foundation.h>
@interface Complex : NSObject
@property double real, imaginary;
-(void) print;
-(Complex *) add: (Complex *) complexNum;
-(Complex *) subtract: (Complex *) complexNum;
-(Complex *) multiply: (Complex *) complexNum;
-(Complex *) divide: (Complex *) complexNum;
@end
// Complex.m
#import "Complex.h"
@implementation Complex
@synthesize real, imaginary;
-(void) print
{
NSLog(@"%f + %fi", real, imaginary);
}
-(Complex *) add: (Complex *) complexNum
{
Complex *result = …Run Code Online (Sandbox Code Playgroud) 我正在通过 sololearn.com 学习 CSS3 中的过渡,其中给出的使用过渡的唯一示例与:hover选择器结合使用。
我能找到的所有其他东西都使用它,或者:active没有解释可以使用哪些其他选择器,或者为什么不显示这两个以外的选择器作为示例。
有没有办法在没有用户交互的情况下开始转换?或者这需要 JavaScript 吗?
我正在尝试理解ArrayLists,并且在此过程中已经意识到我还需要了解泛型,原始类型以及有关类型转换的更多信息.我正在阅读Oracle教程,这是他们为泛型有用的原因提供的示例:
以下没有泛型的代码片段需要强制转换:
List list = new ArrayList();
list.add("hello");
String s = (String) list.get(0);
Run Code Online (Sandbox Code Playgroud)
我不明白为什么这里需要类型转换,因为据我所知,'list.get(0)'在类型转换之前和之后都是'String'类型.我在这里使用代码检查类型,不确定它是否正确.
List list = new ArrayList();
list.add("hello");
Object obj= list.get(0);
Class cls=obj.getClass();
String answer = cls.getSimpleName();
System.out.println(answer);
String s = (String) list.get(0);
Object obj2= list.get(0);
Class cls2=obj2.getClass();
System.out.println(cls2);
String answer2 = cls2.getSimpleName();
System.out.println(answer2);
Run Code Online (Sandbox Code Playgroud)
所以我要求解释为什么在这里需要类型转换,在这里通常是非通用的Arraylists.
我正在从教程中重构以下代码.当我运行 complie时,我收到以下错误:
类Vierbeiner中的构造函数Vierbeiner不能应用于给定类型; required:java.lang.String found:无参数原因:实际和形式参数列表的长度不同
我的理解是发生此错误是因为父类Vierbeiner具有需要String参数的构造函数,并且没有构造函数不需要参数.我不明白的是为什么我在没有创建类Hund对象的情况下得到这个错误.当我没有创建类Hund的对象时,为什么要调用构造函数?我看到的关于此错误的每个现有问题都涉及创建子类的对象.
public class Vierbeiner {
public static void main(String[] args){
Vierbeiner hund = new Vierbeiner("Bello");
hund.rennen();
}
String vierbeinerName;
Vierbeiner(String pName) {
vierbeinerName = pName;
}
public void rennen() {
System.out.println(vierbeinerName+" rennt los!");
}
}
class Hund extends Vierbeiner {
}
Run Code Online (Sandbox Code Playgroud)
编辑:在回答我已经得到的答案时,我仍然不清楚为什么以下(案例1)编译没有问题:
public class Vierbeiner{
public static void main(String[] args){
Vierbeiner hund = new Vierbeiner();
Hund hund2 = new Hund();
// Hund hund3 = new Hund("doggy");
}
String vierbeinerName;
Vierbeiner() {
vierbeinerName = …Run Code Online (Sandbox Code Playgroud) java ×2
casting ×1
class ×1
constructor ×1
css ×1
generics ×1
object ×1
objective-c ×1
string ×1