自学Java Part 2

从本周开始,正式进入Java面向对象的学习。

面向对象:一种全新的组织代码方式,更加符合人类思维习惯。

一、方法

1、方法

方法类似C++中的函数,先创建才可以使用。

2、定义格式

public static 返回值类型 方法名(参数) {

方法体;

return 数据 ;

}

若无数据返回,返回值类型为void,而且方法体中没有return。

3、调用格式

带参数:    方法名(参数1,参数2);

不带参数:方法名();

4、重载

多个方法在同一个类中,有相同的方法名。

二、类与对象

1、类

定义:

类是对现实生活中一类具有共同属性和行为的事物的抽象,是对现实事物的一种描述。

形成:

属性:指事物的特征。

默认初始化:

整数0

小数

0.0
引用null
Booleanfalse
数组null

行为:指事物能执行的操作。

2、对象

定义:是一个看得见,摸得着的实体。

3、关系

类是抽象的概念,仅仅是模板。而对象则为具体存在的事物。

三、面向对象设计步骤

1、发现类

类理解为分类,将万事万物归类。

2、找出属性

属性,为名词。

3、找出行为

行为,为动词。

数据抽象:是数据和处理方法的结合。

四、定义类和创建对象

1、定义类

public class 类名 {

// 成员变量

变量1的数据类型 变量1;

变量2的数据类型 变量2;

// 成员方法

方法1;

方法2;

}

定义phone类

public class phone {
String brand;
int price;
public void slogan() {
    if(brand.equals("小米11Ultra")) {
	System.out.println("生生不息");
    }else if(brand.equals("华为mate40Pro")) {
    	System.out.println("跃见非凡");
    }
}
public void soc() {
	if(brand.equals("小米11Ultra")) {
		System.out.println("骁龙"+888);
	}else if(brand.equals("华为mate40Pro")) {
System.out.println("麒麟"+9000);
}
}
}

2、对象

创建对象:

类名 对象名 = new 类名();

调用成员:

对象名.成员变量

对象名.成员方法();

运用创建对象,调用成员,创建测试类Phonetest

public class Phonetest {
public static void main(String[] args) {

phone p1 = new phone();
p1.brand="华为mate40Pro";
p1.price=6499;
System.out.println(p1.brand);
System.out.println(p1.price);
p1.slogan();
p1.soc();
phone p2 = new phone();
p2.brand = "小米11Ultra";
p2.price = 5999;
System.out.println(p2.brand);
System.out.println(p2.price);
p2.slogan();
p2.soc();
}
}

在一个Java Project下,phone类,Phonetest类运行结果如下:

华为mate40Pro
6499
跃见非凡
麒麟9000
小米11Ultra
5999
生生不息
骁龙888

五、变量

1、成员变量

有默认初始化值;

随着对象的存在或消失;

在类中方法外;

2、局部变量

无默认初始化值,要先定义,赋值;

方法调用存在,调用完毕消失;

在方法内部,方法声明上;

3、局部变量是栈内存,成员变量是堆内存。

五、封装

1、封装的意义

之前定义的成员变量,可以任意赋值,若该赋值不合适,易产生错误。

封装可以理解为一种保护屏障,可防止代码、数据被随机访问,更安全。

2、封装

private,被修饰的成员,只能在本类进行访问。被其他类使用时:

读取:public 类型 get变量名();            变量名首字母大写

设置:public 类型 set变量名(变量);     变量名首字母大写

如定义一个phone类


public class phone {
	private String brand;
	private int price;
	public String getBrand() {
		return brand;
	}
	public void setBrand(String b) {
		brand = b;
	}
	public int getPrice() {
		return price;
	}
	public void setPrice(int p) {
		price = p;
	}
	
}

3、this关键字

为区分局部变量和成员变量的重名,this修饰的变量用于指代成员变量。

形参与变量名相同,不带this修饰的变量指的是形参;

形参与变量名不相同,不带this修饰的变量指的是成员变量;

定义一个phone类,输入

private String brand;
private int price;

右键单击,选择Source,点击Generate Getter and Setters,继续选择,点击Generate,可得到

public class phone {
	private String brand;
	private int price;
	public String getBrand() {
		return brand;
	}
	public void setBrand(String brand) {
		this.brand = brand;
	}
	public int getPrice() {
		return price;
	}
	public void setPrice(int price) {
		this.price = price;
	}
	
}

此种方式与2中一致。

六、构造方法

1、理解

定义:构造方法是构造对象的方法。

格式:

public class 类名{

修饰符 类名( 参数 ) {

}

}

作用:数据初始化

若没有定义构造方法,系统将给出一个默认的无参数构造方法。如果定义了构造方法,系统将不再提供默认的构造方法。

2、应用

定义一个phone


public class phone {
	private String brand;
	private int price;
	public phone() {}
	
	public phone(String brand) {
		this.brand = brand;
	}
    public phone(int price) {
		this.price = price;
	}

	public phone(String brand, int price) {
		this.brand = brand;
		this.price = price;
	}
	public void show() {
		System.out.println(brand+"  " + price);
		}

}

定义phonetest


public class phonetest {
	public static void main(String[] args) {
		phone a=new phone();
	    a.show();
		phone b=new phone("华为mate40Pro");
	    b.show();
		phone c=new phone(6499);
		c.show();
		phone d=new phone("华为mate40Pro",6499);
	    d.show();
	}

}

a为默认无参构造,结果:null  0

b中brand为带参构造,price为默认无参构造,结果:华为mate40Pro  0

c中price为带参构造,brand为默认无参构造,结果:null  6499

d中都为带参构造,结果:华为mate40Pro  6499

 

每个人都有自己的困惑,这也是人生有趣,有意义的原因,当我对世界开始好奇,并提出质疑的时候,就有机会改变世界。风华正茂的我们,永远相信美好的事情即将发生!

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值