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);
}
}
网友评论