了解Java程序之面向对象

心已入冬 提交于 2020-01-23 19:52:57

面向对象

构造方法
给成员变量赋值的方法:
通过setxxx()/getxxx();
通过构造方法赋值;
构造方法的格式:
1)构造方法的方法明和类名一致 ;
2)没有具体返回值;
3)并且连void都没有;
注意:没有提供无参构造方法,系统会默认提供;建议在标准类的时候,永远给出无参构造方法;

//示例类
class Demo{
	//成员变量
	private String name;
	private int age;
	//无参构造方法
	public Demo(){
		System.out.out.println("无参构造方法执行了!");		
	}
	//有参构造方法
	public Demo(String name,int age){
		this.name=name;
		this.age=age;
	}
	//成员方法
	public void  print(){
		System.out.println("姓名:"+name+",年龄:"+age);
	}
}
//测试类
class DemoTest{
	public static void main(String[] args){
		Demo d=new Demo();//创建一个Demo类的对象,并赋值于d
		System.out.ptintln(d);//使用无参构造方法
		d=new Demo("小白",4);//使用有参构造方法
		d.print();//调用成员方法
	}
}

构造方法的注意事项:
1)之前一直在使用无参构造方法,类名 对象名 = new 类名();
2)在开发中,如果给出了有参构造方法,系统不会再无参构造方法,作用:给成员变量进行赋值
3)构造方法是可以重载的!
成员方法:
成员方法:
有具体返回值无参的:
无返回值无参的(用void代替返回值);
有具体返回值有参的;
无返回值有参的(有void代替返回值);

标椎类

类名{
	成员变量;
	无参构造方法;
	有参构造方法;
	成员方法;
}
//手机类
class Phone1{
	//成员变量
	private String brand;
	private int price;
	private String colour;
	//无参构造方法
	public Phone1(){}
	//有参构造方法
	public Phone1(String brand,int price,String colour){
		this.brand=brand;
		this.price=price;
		this.colour=colour;
	}
	//setxxx()/getxxx()写法,
	//与有参构造方法一样都可以给变量赋值,开发中二者选其一即可
	public void setBrand(String brand){
		this.brand=brand;
	}
	public void setPrice(int price){
		this.price=price;
	}
	public void setColour(String colour){
		this.colour=colour;
	}
	public String getBrand(){
		return brand;
	}
	public int getPrice(){
		return price;
	}
	public String getColour(){
		return colour;
	}
	//成员方法
	public void call(){
		System.out.println("打电话!");
	}
	public void send(){
		System.out.println("发短信");
	}
	//成员方法,调用成员变量,获取有参构造方法的值
	public void print(){
		System.out.println("品牌:"+brand+",价格:"+price+",颜色:"+colour);
	}
}
//测试类
class PhoneTest1{
	public static void main(String[] args){
	//方式1
		Phone1 p=new Phone1();
		p.setBrand("坚果");
		p.setPrice(5000);
		p.setColour("天空蓝");
		System.out.println("品牌:"+p.getBrand()+",价格:"+p.getPrice()+",颜色:"+p.getColour());
		p.call();
		p.send();
		System.out.println("----------------------");
		//方式2
		p=new Phone1("华为",5000,"天空境");
		p.print();
		p.call();
		p.send();
	}
}

static关键字
static关键字的特点
(修饰成员变量,可以修饰成员方法)
1)随着类的加载而加载
2)优先于对象存在
3)可以被多个对象共用
4)被静态修饰的变量,方法可以被类名调用,也可以对象名访问 类名 对象名 = new 类名() ;
将静态修饰的成员,也称为 “类成员”
注意事项:
1)static修饰的成员,随着的类的加载而加载,优先于对象存在;在内存中静态中不存在this关键字;
2)静态只能访问静态;
静态在开发过程中使用的时候,不能随意使用;
应用场景:
如果一个变量能被多个对象共用,这个使用static修饰;

//学生类
class Student3{
//成员变量
	private String name;
	private int age;
	//静态成员变量,共享的
	private static String banji="一年级五班";
	//有参构造方法
	public Student3(String name,int age){
		this.name=name;
		this.age=age;
	}
	//成员方法
	public void print(){
		System.out.println("姓名:"+name+",年龄:"+age+",班级:"+banji);
	}
}
class StudentTest3{
	public static void main(String[] args){
		//new3个学生类对象
		Student3 s1=new Student3("小白",4);
		Student3 s2=new Student3("小李",5);
		Student3 s3=new Student3("小明",4);
		//调用成员方法
		s1.print();
		s2.print();
		s2.print();
		/*
		结果
		姓名:小白,年龄:4,班级:一年级五班;
		姓名:小李,年龄:5,班级:一年级五班;
		姓名:小明,年龄:4,班级:一年级五班;
	}
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!