我现在正在努力学习Java,这是一个hello world程序,它已经开始让我感到困惑.我习惯了python,我发现这个教程(电子书)简单而简洁,适合拥有python背景的程序员.
来自Java的Hello世界程序:
public class Hello {
public static void main (String[] args) {
System.out.println("Hello World!");
}
}
Run Code Online (Sandbox Code Playgroud)
正如书中所说,python中的等效代码是:
class Hello(object):
@staticmethod
def main(args):
print "Hello World!"
Run Code Online (Sandbox Code Playgroud)
我完全理解python代码.但是,我遇到了Java代码的问题,在进一步开发之前我想要清楚,这样我才能掌握大脑中的语言知识.
这本书说(从书中复制):
......我们有一个参数.然而,参数的名称是args,因为Java中的所有内容都必须具有类型,我们还必须告诉编译器args的值是字符串数组.目前您可以将数组视为与Python中的列表相同的事物.声明方法main必须接受一个参数并且参数必须是字符串数组的实际好处是,如果在代码中的其他地方调用main并且传递整数数组或甚至单个字符串,编译器将其标记为错误.
这对我没有任何意义.为什么我不能传递任何东西,因为我的功能不需要任何东西?如果我只是传递(String args)会发生什么.
由于我是Java的新手,请耐心等待.
我在 SO 上读到,混合 awt 和 swing 并不是用 Java 进行 GUI 编程的好方法。但是,我无法找到任何在使用 Swing 时不使用某些 awt 组件的示例。例如,即使在使用swing时,我遇到的大多数示例都会使用awt进行布局和事件处理。
话虽如此,在使用 Java 的 GUI 编程中不混合 Swing 和 awt 意味着什么?这是否只是意味着不要同时从swing和awt中借用按钮,画布等图形小部件,或者只是完全单独使用swing或awt?或者可以使用来自 Swing 的图形单元(如按钮、面板)以及来自 awt 的事件处理和布局?
大多数情况下,进口看起来至少是这样的:
import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Color;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
Run Code Online (Sandbox Code Playgroud)
我可能是错的,但由于我是 Java GUI 的新手,我还没有看到使用完全摆动而不使用 awt 或以错误的方式查看此示例的示例。
我现在正在学习递归,正如俗话所说,精通递归的最佳方法是尽可能多地练习.我习惯用纸张追踪程序(我猜我们所有人都曾在某些时候).
例如,如果我有一个从1到10打印数字的功能:
def print_n():
for i in range(1,11):
print i
Run Code Online (Sandbox Code Playgroud)
我会跟踪:
i
.......
1
2
3
4
... and so on
Run Code Online (Sandbox Code Playgroud)
但是,当我练习递归时,我发现很难用纸张跟踪程序.有人可以通过示例推荐一种在纸上跟踪递归函数的最佳方法吗?您可以使用以下斐波那契(再次!!!)来说明您的示例,或者您可能会惊讶于读者群.
#RECURSIVE FUNCTION TO RETURN Nth FIBONACCI NUMBER
def fib(n):
if n is 0 or n is 1:
return 1
else:
return fib(n-1) + fib(n-2)
Run Code Online (Sandbox Code Playgroud) 仅仅据我所知,python,尤其是wxpython如何对多个导入做出反应?如果我在多个文件中导入wx,它在调用主框架时如何处理?它会降低速度还是首先检查它是否已经导入?
我的问题很简单,但我无法弄清楚.如何在google docs电子表格中创建登录时可以看到的按钮.我想在登录google文档时初始化脚本,而不是手动加载.有没有办法做到这一点?另外,我找不到很好的教程,它提供了关于google-docs功能的中级知识.我能找到的就是这个简单的教程.另一个问题是:google-docs提供的python脚本可以在google-docs中保存和执行吗?如果可以,它可以提供比简单的谷歌功能更多的功能.我是google docs的新手,所以请耐心等待.
使用indexOf时,我可以找到第一个外观的位置:
例如:
a=[1,2,4,2];
b=a.indexOf(2);
alert(b) //returns 1
Run Code Online (Sandbox Code Playgroud)
是否有任何替代函数indexOf找到这两个位置或我错过了什么?我正在寻找捷径.当然,我总是可以写一个简单的外观来找到它.
我在努力了解Java/C#中的接口时询问了这个问题.正如我的程序员朋友告诉我的那样,界面是最易理解的概念之一,但很难有效使用.任何想要投票的人,请考虑在向下投票之前指导我正确的方向(我不介意,只要我得到我所寻求的知识).
我理解界面是如何工作的,但它的使用对我来说似乎有些模糊.
考虑一下:
public interface Drawable {
public void draw(Graphics g);
}
public class Line implements Drawable {
public void draw(Graphics g) {
. . . // do something---presumably, draw a line
}
. . . // other methods and variables
}
Run Code Online (Sandbox Code Playgroud)
现在,要做一些事情,我仍然需要做:
Drawable newObject= new line();
Run Code Online (Sandbox Code Playgroud)
我有一个Drawable类型,但我仍然需要创建类的新对象,行.这就是说,纠正我,如果我错了,我仍在创造一个阶级对象,这意味着线; 写上面的代码并没有帮助我保存任何内存,如果上面的事情已经完成内存优化(我知道它更多地与抽象相关而不是内存).
我的问题是:如果类行具有在它实现的接口上指定的方法,为什么我不能只执行以下操作?
public class Line {
public void draw(Graphics g) {
. . . // do something---presumably, draw a line
}
. . . // other methods and variables
}
line newObject= …Run Code Online (Sandbox Code Playgroud) 我正在为我的办公室创建Google Docs电子表格的Google应用.我可以找到电子表格和UI元素的教程,但没有一个包资源描述了google-docs脚本使用的数据类型和控制结构.我的背景是python所以我期待python在google-docs中使用的列表和其他相关数据类型.有人可以建议我一个地方或链接,我可以找到有关google-docs脚本数据类型和控制结构的所有相关信息吗?
我在python初始化程序中有一些背景知识(本质上是Python对象构造函数语法),在Python中实例化对象的语法如下:
class Account:
def __init__(self,name=None,address="Not Supplied",balance=0.0):
this.name = name
this.address=address
this.balance=balance
Run Code Online (Sandbox Code Playgroud)
为什么,在C#中,我必须提供默认的构造函数方法的机构,在蟒蛇的时候,我可以声明为可选的,默认值是在通过(见__init__的签名):
public class Account
{
private string name;
private string address;
private decimal balance;
public Account (string inName, string inAddress, decimal inBalance)
{
name = inName;
address = inAddress;
balance = inBalance;
}
public Account (string inName, string inAddress)
{
name = inName;
address = inAddress;
balance = 0;
}
public Account (string inName)
{
name = inName;
address = "Not Supplied";
balance = 0;
}
} …Run Code Online (Sandbox Code Playgroud) c# python constructor default-constructor object-initialization
python ×6
java ×3
c# ×2
awt ×1
constructor ×1
google-docs ×1
javascript ×1
recursion ×1
swing ×1
wxpython ×1