类与对象

1.类的定义
类由方法与属性(变量)组成

class Person{
    String name;
    int age; 
    public void tell() {
        System.out.println("姓名:" + name +",年龄:" + age);
    }
}

方法未加上static,因为方法将由对象调用,而不是与主方法定义在一个类中,有主方法直接调用,public表示可以被任何地方都可以访问。
2.对象的创建及使用
对象属于引用类型,分配内存与数组中相似

public class TestJava {
    Person per = new Person();  
    
}
class Person{
    String name;
    int age; 
    public void tell() {
        System.out.println("姓名:" + name +",年龄:" + age);
    }
}
Person per = null;
per = new Person();

3.引用传递

public class TestJava {
    public static void main(String[] args) {    
        Person per1 = new Person();  
        Person per2 = per1;
        per2.tell();
    }
}
class Person{
    String name;
    int age; 
    public void tell() {
        System.out.println("姓名:" + name +",年龄:" + age);
    }
}

Java垃圾回收机制回收释放不用的内存空间
4.封装性
面向对象形法则不允许队象直接访问属性,需要封装属性及方法.可使用Java反射机制利用getter和setter获取和设置属性。用private声明的属性和方法仅在类的内部使用。在类中,可按this.getname();

public class TestJava {
    public static void main(String[] args) {    
        Person per1 = new Person();  
        per1.setName("zheng");
        per1.tell();
    }
}
class Person{
    private String name;
    private int age;
    public String getName() {
        return name;
    }
    public void setName(String n) {
        name = n;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int n) {
        age = n;
    }
    public void tell() {
        System.out.println("姓名:" + name +",年龄:" + age);
    }
}

5.构造方法:对象实例化时就可以为属性赋值。
方法名与类名一致
构造方法不含返回类型声明且不返回值
若未定义构造方法,编译程序自动生成构造方法。若已经生成,则编译程序不再自动生成。构造方法可以重载。

public class TestJava {
    public static void main(String[] args) {    
          
        Person iio = new Person("zhang",30);
        iio.tell();
    }
}
class Person{
    private String name;
    private int age;
    public Person(String n,int a) {
        name = n;
        age = a;
    }
    public String getName() {
        return name;
    }
    public void setName(String n) {
        this.name = n;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int n) {
        this.age = n;
    }
    public void tell() {
        System.out.println("姓名:" + name +",年龄:" + age);
    }
}

6.匿名对象
一般匿名对象只能使用一次,只在堆内存中开辟空间,不存在栈内存的引用。使用后被垃圾回收机制收回。

public class TestJava {
    public static void main(String[] args) {    
          
        new Person().setName("zheng");
        new Person().tell();
    }
}
class Person{
    private String name;
    private int age;
    public String getName() {
        return name;
    }
    public void setName(String n) {
        this.name = n;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int n) {
        this.age = n;
    }
    public void tell() {
        System.out.println("姓名:" + name +",年龄:" + age);
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 待到酒清醒,她无影,原来是梦里(歌词)
    米奇大战佩奇阅读 1,443评论 0 0
  • 今日阅读书籍:《张爱玲传》 1921-1995 第一次读张爱玲的书,感觉张爱玲是一个清奇冷峻而足够独立的人。而提起...
    紫璃衣阅读 6,621评论 0 0
  • 我弄丢了我最爱的人 可能是伤心透了 可能是害怕再次受伤 当他再次来到我的身边 我却发现我不敢伸手拥抱他 曾经无话不...
    心悸i阅读 1,241评论 0 0
  • by:孤鸟差鱼 多少次 与你的虔诚比起来 我都胜之不武 惭愧至极
    孤鸟差鱼阅读 3,056评论 0 2