class Backend extends UI {
// some code
void start() {
txtRespond.append(Bot + ": hello, " + Name + "\n"); /* have a problem accessing txtRespond */
public class UI extends javax.swing.JFrame {
// some code
private javax.swing.JTextArea txtRespond;
我正在尝试从另一个班级向我的JTextArea
添加句子。
答案 0 :(得分:0)
您无法访问父级的private
变量,创建变量txtRespond
protected
或为该变量创建一个getter。
答案 1 :(得分:0)
正如我在发表问题时最初在评论中提到的那样,您需要将私有字段标记为受保护,以便子类可以访问它或提供变异方法。
第二种方法更好,因为它保护了封装。
$(document).ready(function(){
$('#gallery1').click(function() {
$('#gallery').hide();
$('#previewGallery1').show();
});
$('#showGallery1').click(function() {
$('#gallery').show();
$('#previewGallery1').hide();
});
$('#gallery2').click(function() {
$('#gallery').hide();
$('#previewGallery2').show();
});
$('#showGallery2').click(function() {
$('#gallery').show();
$('#previewGallery2').hide();
});
$('#gallery3').click(function() {
$('#gallery').hide();
$('#previewGallery3').show();
});
$('#showGallery3').click(function() {
$('#gallery').show();
$('#previewGallery3').hide();
});
});
让班级负责修改其状态是一种很好的做法。我们应该避免让他们非私人。
* P.S。如果bot,Name在父类中定义,那么你可以只传递字符串的变体部分并将其作为参数传递给父方法(当然你需要修改方法的签名以接受多个字符串)并在方法中定义你可以根据要求处理字符串的合并。