java类和对象

类:实体的一个抽象和模板

一,类的组成成分

1,属性(成员变量)

2,方法(成员方法,函数)

3,构造器   (作用:创建类的对象,初始化对象的成员变量)

4,代码块  (作用 :)

通过class{   }来创建一个类

 
 

我们创建了Person这个类,这个类有着自己的属性 ,也就是Person的标志---->name age sex...   然后它还有自己的方法 ------>  eat()  sleep().....

class Person{
	public String name;
	public int age;
	public String sex;
	
	public void eat(){
		System.out.println("Person : eat!!");
	}
	
	public void sleep(){
		System.out.println("Person : sleep!!");
	}
	
	public void show(){
		System.out.println("name :"+name+" age :"+age+" sex :"+sex);
	}
}

接下来我们来创建一个Person类的对象

对象的创建:

         1,为对象分配内存

         2,调用合适的构造函数(构造函数不止一个)

Person person=new Person();//实例化一个对象
//person  是一个引用变量  指向Person类 的引用地址

如果没有显示的写一个构造函数的话,java在运行这句话时会调用系统默认的构造函数

public Person(){
}

类中方法和属性的调用

person.eat();
person.sleep();

通过对象名.方法名调用      

二,对象初始化的四种方法

1,通过对象名.属性的办法(ps:此时属性应被public修饰)

Person person = new Person();
person.name="jiejie";
person.age=19;
person.sex="女";
person.show();

2,如果类中 属性为私有化(private修饰)

可以通过一系列set() get() 方法进行初始化

       public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}
person.setName("fairy");
person.setAge(10000);
person.setSex("女");
person.show();

初始化结果


3,通过带参构造函数对对象进行初始化

public Person(String name,int age,String sex){
		this.name=name;
		this.age=age;
		this.sex=sex;
	}

如果只写了这一个构造函数的话,那么执行原来那句创建对象就会报错


因为有显示的构造函数就不会调用默认的构造函数了

		Person person = new Person("fairy1",999,"女");
		person.show();

初始化结果


!!!构造函数可以有

Person person = new Person("fairy1",999,"女");
		Person person1=new Person();
		Person person2=new Person("fariy2",888);
		person.show();
		person1.show();
		person2.show();

public Person(String name,int age,String sex){
		this.name=name;//this 代表的是指向我当前对象的内存     因为调用构造函数的时候还没有成功创建一个对象
		this.age=age;
		this.sex=sex;
	}
	public Person(){
		
	}
	public Person(String name,int age){
		this.name=name;
		this.age=age;
	}

初始化结果为


我们也可以在构造函数内调用其他的构造函数

public Person(){//调用带有三个构造参数的构造函数          这句话必须第一行
		this("fariy3",222,"女");
	}

运行结果


4,通过代码块对类进行初始化

    1> 静态代码块

private static int data;//静态成员变量   在方法区内
private static final int data1 = 29;



初始化结果


  2>实例代码块



如果将构造函数屏蔽掉

初始化结果为


so:::


猜你喜欢

转载自blog.csdn.net/qq_37937537/article/details/80018201