python

可以直接对实例化的属性进行赋值

class Test():
name = "小明"
  def __init__(self):{
    //self.name = name; 不能调用, java如果设置了静态字段的话,是可以直接调用的,
  }
a = Test()   #小明
b = Test() #小明
c = Test() #小明
print(a.name)
print(b.name)
print(c.name)
print("--------")
a.name = "小红" //表示只给当前的实例添加了一个属性,name='小红',不影响其他的实例
print(a.name) #小红
print(b.name) #小明
print(c.name) #小明

  

  

  

java

public class Demo {
public static void main(String[] args){
Test a = new Test("小明");
Test b = new Test("小红");
Test c = new Test("小花");
System.out.println(a.getInfo());//由于设置了private 所以不能直接调用a.name System.out.println(a.country);//中国 没有设置 private 所以可以 直接调用a.country
System.out.println(b.country);//中国
System.out.println(c.country);//中国
a.country = "新中国"; //改变静态字段值,即改变了类字段,其他的实例,都用的是这个字段
System.out.println(a.country);//新中国
System.out.println(b.country);//新中国
System.out.println(c.country);//新中国
}
} class Test{
private String name;
static String country = "中国";
public Test(String name){ //构造方法
this.name = name;
this.country = country; //可以去掉,没有任何效果
}
public String getInfo(){
return this.name; //由于设置了私有字段(private),所以需要开辟接口,用来获取字段
}
}

  

注意

如果属性为静态字段,构造方法中由对该静态字段重新赋值,修改的还是静态字段,并没有给实例创建新字段;

public class Demo {
public static void main(String[] args){
Test a = new Test("小明","z");
Test b = new Test("小红","d");
Test c = new Test("小花","x"); System.out.println(a.country);//x //全部为最后一个创建实例时,设置的国家
System.out.println(b.country);//x
System.out.println(c.country);//x
a.country = "新中国";//直接将静态字段改变了 System.out.println(a.country);//新中国
System.out.println(b.country);//新中国
System.out.println(c.country);//新中国
}
} class Test{
private String name;
static String country = "中国";
public Test(String name,String country){
this.name = name;
this.country = country;
}
}

如果需要每一个实例都有自己的国家,传入的字段不要设置为静态字段即可

public class Demo {
public static void main(String[] args){
Test a = new Test("小明","z");
Test b = new Test("小红","d");
Test c = new Test("小花","x"); System.out.println(a.country);//z
System.out.println(b.country);//d
System.out.println(c.country);//x
a.country = "新中国";//直接将静态字段改变了 System.out.println(a.country);//新中国
System.out.println(b.country);//d
System.out.println(c.country);//x
}
} class Test{
private String name;
String country = "中国";
public Test(String name,String country){
this.name = name;
this.country = country;
}
public String getInfo(){
return this.name; //由于设置了私有字段(private),所以需要开辟接口,用来获取字段
}
}

 

java可以向python一样直接给实例添加属性,前提先声明,不能是私有字段,[也最好不要是静态字段,不然多个实例,会共享这个字段]

public class Demo {
public static void main(String[] args){
Test t = new Test();
t.name = "ddd";
System.out.println(t.name);
}
}
class Test{
String name;
}

  

此时的效果和python一样了

public class Demo {
public static void main(String[] args){
Test a = new Test("小明");
Test b = new Test("小红");
Test c = new Test("小花"); System.out.println(a.country);//中国
System.out.println(b.country);//中国
System.out.println(c.country);//中国 a.country = "新中国"; //给当前的实例添加一个新属性,不影响其他的实例
System.out.println(a.country);//新中国
System.out.println(b.country);//中国
System.out.println(c.country);//中国
}
}
class Test{
private String name;
String country = "中国";
public Test(String name){
this.name = name;
}
}

  

java和python对比----实例化的对象属性:的更多相关文章

  1. 对比java和python对比

    对比java和python 对比java和python 2011年04月18日 1.难易度而言.python远远简单于java. 2.开发速度.Python远优于java 3.运行速度.java远优于 ...

  2. Java中创建(实例化)对象的五种方式

    Java中创建(实例化)对象的五种方式1.用new语句创建对象,这是最常见的创建对象的方法. 2.通过工厂方法返回对象,如:String str = String.valueOf(23); 3.运用反 ...

  3. java和python对比

    一:解释性和编译型 梳理 编译型:源代码经过编译直接变为二进制的机器语言,每次都可以直接重新运行不需要翻译.典型的就是c语言. 解释性:java和python都是解释型,源代码经过编译变为字节码文件, ...

  4. python遍历并获取对象属性--dir(),__dict__,getattr,setattr

    一.遍历对象的属性: 1.dir(obj) :返回对象的所以属性名称字符串列表(包括属性和方法). for attr in dir(obj): print(attr) 2.obj.__dict__:返 ...

  5. java和python对比----1:

    对计算来说: java 除法: 3/4 ==0; pyhton 除法: 3/4 ==0 3//4==0.75

  6. java 通过反射获取和设置对象属性值

    public static Object parseDate(Object object){ SimpleDateFormat sdf = new SimpleDateFormat("yyy ...

  7. python 类实例化,修改属性值

    class User(object): def __init__(self, first_name, last_name, login_attempts): self.first_name = fir ...

  8. Mockito 中被 Mocked 的对象属性及方法的默认值

    在 Java 测试中使用 Mockito 有段时日了,以前只是想当然的认为 Mock 的对象属性值和方法返回值都是依据同样的规则.基本类型是 0, 0.0, 或 false, 对象类型都是 null, ...

  9. JavaScript 获取对象属性和方法

    ShineJaie 原创整理,转载请注明出处. 一.获取对象属性和方法 Object.keys() 返回对象的可枚举属性和方法的名称数组. Object.getOwnPropertyNames() 返 ...

随机推荐

  1. php 调试的常用方法

    1. php 页面直接输出错误, 根据错误进行调试 2.无法通过php页面捕获到错误,通过查看apache2的日志错误进行排查,  像通过系统命令进行操作失败时,就需要日志进行查看

  2. Css/Js推荐类库

    animate.css https://daneden.github.io/animate.css WOW.js http://mynameismatthieu.com/WOW owl.carouse ...

  3. jQuery插件整理

    toastr:Jquery消息提示插件 http://codeseven.github.io/toastr cropperjs:jQuery简单且功能强大的图片剪裁插件 https://www.npm ...

  4. 比较python类的两个instance(对象) 是否相等

    http://www.yihaomen.com/article/python/281.htm 比较python类的两个instance(对象) 是否相等 作者:轻舞肥羊 日期:2012-10-25 字 ...

  5. pycharm 使用教程

    本文为大家讲解的是pycharm 的安装和首次使用,PyCharm 是我用过的python编辑器中,比较顺手的一个.而且可以跨平台,在macos和windows下面都可以用,这点比较好.感兴趣的同学参 ...

  6. Tip:JSP标签也称之为Jsp Action(JSP动作)元素

    JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. ================ &l ...

  7. 安装mysql8.0.12以及修改密码和Navicat的连接

    mysql8.0+与安装其他版本不同一.安装mysql8.0.121.到官网https://www.mysql.com/  下载mysql-8.0.12-winx64.zip(不要.mis),直接解压 ...

  8. ps遇到的技术问题列表

    1.ps矩形选框显示像素 CTRL+K 进入首选项设置就可以了. 2.ps显示辅助线 页面工具栏上的视图按钮,我们在列表上找到标尺,我们也是可以快捷键选择CtrI+R 3.如何将插入photoshop ...

  9. MySQL常用的sql操作

    1.日期时间格式化 2.日期时间格式化 3.查询第11到第15条数据 ,5//落过多少,取出多少. 4.字符串转日期 select str_to_date('2016-01-02', '%Y-%m-% ...

  10. [CentOS]Failed to start OpenSSH server daemon

    问题描述: 以前一直能够通过Xshell来连接服务器,但是突然连接不上了. 解决思路: 首先通过命令查看SSH服务的状态: systemctl status sshd 可以看到,有错误,但是没有显示详 ...