8、 单选 关于以下代码,说法正确的是: class Tree { public static String tree =" tree"; public static String getTree( ){ return tree; } } public class Elm extends Tree { public static String tree = "elm"; public static void main(Strin g[] args){ Tree t= new Elm(); Elm e= new Elm(); //插入代码处 } public static String getTree (){ return tree; } public String getTree1() { return tree;
时间: 2024-01-21 21:05:06 浏览: 66
在插入代码处,可以使用以下代码来测试:
```
System.out.println(t.tree); // 输出 "tree"
System.out.println(e.tree); // 输出 "elm"
System.out.println(t.getTree()); // 输出 "tree"
System.out.println(e.getTree()); // 输出 "elm"
System.out.println(e.getTree1()); // 输出 "elm"
```
在这段代码中,`Tree` 是一个父类,`Elm` 是一个子类。在 `Tree` 类中,定义了一个名为 `tree` 的静态变量和一个名为 `getTree()` 的静态方法来获取 `tree` 变量的值。在 `Elm` 类中,也定义了一个名为 `tree` 的静态变量。当创建 `Tree` 和 `Elm` 类的实例时,它们都可以访问 `tree` 变量和 `getTree()` 方法。在插入代码处,我们可以使用 `t.tree` 和 `e.tree` 分别访问 `Tree` 类和 `Elm` 类中的 `tree` 静态变量。由于 `t` 是 `Elm` 类型的,因此 `t.getTree()` 和 `e.getTree()` 都会调用 `Tree` 类的 `getTree()` 方法并返回 `tree` 的值。最后,`e.getTree1()` 调用 `Elm` 类中的非静态方法 `getTree1()` 并返回 `Elm` 类中的 `tree` 变量的值。
相关问题
public static function getTree($list, $pid = 0) { $tree = array(); foreach ($list as $k => $v) { if ($v['pid'] == $pid) { // 父亲找到儿子 $v['lists'] = self::getTree($list, $v['id']); $tree[] = $v; } } return $tree; } 什么情况下会死循环
在使用递归函数时,如果存在子节点的 `pid` 值等于当前节点的 `id` 值,而且子节点的 `id` 值又等于当前节点的 `pid` 值,那么就会出现死循环的情况。这种情况被称为循环引用,会导致函数一直递归下去,直到超出 PHP 的最大递归深度,从而导致程序崩溃。
例如,如果存在下面这样的数据:
```
[
['id' => 1, 'name' => '节点1', 'pid' => 0],
['id' => 2, 'name' => '节点2', 'pid' => 1],
['id' => 3, 'name' => '节点3', 'pid' => 2],
['id' => 1, 'name' => '节点1', 'pid' => 3],
]
```
在调用 `getTree()` 函数时,传入这个数组并指定 `$pid` 为 `0`,就会出现死循环的情况,因为节点 1 和节点 3 互相引用,导致函数无限递归下去,直到超出 PHP 的最大递归深度。为了避免这种情况,需要在程序中对数据进行去重或者设置递归深度的限制,以防止出现死循环。
$('#tree2').ace_tree({ dataSource: sampleData['dataSource2'], loadingHTML: '<div class="tree-loading"><i class="ace-icon fa fa-refresh fa-spin blue"></i></div>', 'open-icon': 'ace-icon fa fa-folder-open', 'close-icon': 'ace-icon fa fa-folder', 'selectable': true, multiSelect: false, 'selected-icon': null, 'unselected-icon': null }).on('selected.fu.tree', function (e, data) { var tree = $('#tree1').tree(); // 动态添加节点 tree.add({ name: 'New Node', type: 'item' }, { parent: $('#weiwei') }); console.log(tree.ace_tree()); ; //$('#tree1').ace_tree('test'); //var tree = $('#tree').ace_tree('getTree'); //var treeData = tree ? tree.getData() : null; //console.log("tree", tree); //console.log("treeData", treeData); //console.log(e); //console.log(data.selected); //console.log(data.target.text); }).on('deselected.fu.tree', function (e, data) { // console.log(e); // console.log(data); }).on('updated.fu.tree', function (e, result) { //console.log(e); //console.log(result); });
根据您提供的代码中的信息,您使用了 `tree.add()` 方法来动态节点,但是在您的代码中,添加节点的父节点选择器是 `$('#weiwei')`,这个选择器可能不正确。请确认您需要添加的父节点的 ID 是否正确,并且该节点是否存在于树中。
如果您确认了父节点选择器的正确性,但是仍然无法添加节点,请检查您的代码是否存在其他问题,例如是否引入了正确的 JavaScript 文件、是否正确配置了相关参数等。
如果您仍然无法解决问题,请提供更多的信息,例如您的错误信息,以便我更好地帮助您解决问题。
阅读全文