学习Java进阶 day2

/*
class Car{
int num;
String color;
void run(){
System.out.println(color+":"+num);
}
}
class day2{
public static void main(String[] args){
Car car=new Car();
Car car1=new Car();
Car car2=new Car();
day2.show(car);
day2.show(car1);
day2.show(car2);

}
public static void show(Car car){  //为了提高代码的复用性,将不同对象作为方法参数进行变化
	//把匿名对象作为实际参数进行传递
	car.color="Blue";
	car.num=4;
	car.run();
}

}/
/

1.函数其实是一个最基本的封装体。
2.类也是一个封装体。
从以上两点得出结论:
1.封装提高了代码的复用性。
2.隐藏了实现细节,对外提供访问方式,便于使用者调用。
举例:机箱。隐藏了板卡设备细节,对外提供了接口以及开关的访问方式。
private私有是封装的一种体现形式,并不是封装。
封装是隐藏实现细节。
/
/

构造函数的作用:对对象进行初始化。
构造函数在代码中的体现:
1.没有返回值类型。
2.没有返回值。。
3.名称与类名相同。
只要定义一个类,类中默认有一个空参数的构造函数,是编译器编译时添加到class文件中。
注意:如果在类中自定义了构造函数,那么编译器就不添加默认的空参数的构造函数。
原理:没有定义构造函数,编译器会添加对象的初始化过程,定义了构造函数就不添加了。

构造函数细节:
1.一个类中可以有多个构造函数,它们的存在是以重载方式体现的。
2.构造函数中可以有return语句,作用是结束函数。
3.构造函数可以用private修饰,但不能创建该类对象。
*/

/*
构造函数之间的调用:
给哪个对象初始化,通过this关键字记录对象的地址,this(实参列表),就会调用相应的构造函数。
哪个对象调用了this所在的函数,this就调用哪个对象。

*/

//创建对象就是为了产生实例,并进行数据的封装。
/*
如果创建的对象没有用到数据的封装,那么该对象的创建就没有意义,Java中用static关键字来修饰静态方法,不用创建对象就可调用该方法。

什么时候使用static:定义某个功能时如果没有访问成员变量时。

*/
class Person{
private int age;
private String name;
Person(){

}
private Person(String name){
	this.name=name;
}
Person(String name,int age){
	this(name);    //当前对象调用,this指向类中一个参数的方法
	this.age=age;
}
public static void sleep(){
	System.out.println("哈哈哈哈哈啊哈哈");
}
void speak(){
	System.out.println("age:"+age+"\nname:"+name);
}
void setAge(int age){
	if(age<0||age>=100){
		throw new RuntimeException("你输入的年龄非逻辑:"+age);
	}
	else this.age=age;
}
int getAge(){
	return this.age;
}

}
class day2{
public static void main(String[] args) {
Person demo=new Person(“习大大”,18);
/*demo.setAge(-15);
demo.getAge();
//demo.age=-15; 不让它访问,需要使用Java中的关键字private访问控制符。还要提供访问方式,更重要的是在方法中加入逻辑判断。
//记住:对变量的访问方式有两种:赋值(set)、取值(get)。
*/
demo.speak();
Person.sleep();
}
}

猜你喜欢

转载自blog.csdn.net/yang13563758128/article/details/83590103