学习java的第7天--lrs

类和对象

学习编程语言,是为了描述现实世界的事物.在java中最基本的单元是类

什么是面向对象

面向过程:针对每一个步骤的具体表现

1)定义数组 2)获取最大值 3)在main方法调用完成 4)输出

                     2.1定义参照物

                     2.2遍历数组

                     2.3判断

                     2.4返回结果

面向对象是基于面向过程的

面向对象的思想特点有哪些:

1.更符合生活的思想行为习惯

2.让复杂的事情简单化

3.让我们从执行者变成指挥者

面向对象的三大特征:封装  继承   多态

举例 1

手机具有以下属性:品牌,价格,颜色

                      功能:打电话,发短信,打游戏

手机  --------------- class APhone{}

属性                     成员变量:品牌,价格,颜色(brand,price,colour)

功能                     成员方法:打电话,发短信,打游戏(call,message,playgame)

代码例子

 class Phone1{//定义一个手机类
	//成员变量私有化
        private String brand;
	private int price;
	private String colour;
	public void setBrand(String brand) {
		this.brand=brand;
	}
        //获取品牌名
	public String getBrand() {
		return brand;
	}
	public void setPrice(int price) {
		this.price=price;
	}
        //获取价格
	public int getPrice() {
		return price;
	}
	public void setColour(String colour) {
		this.colour=colour;
	}
        获取颜色
	public String getColour() {
		return colour;
	}
        //其他成员方法
	public void call() {
		System.out.println("iphone手机打电话信号有点不好嗷!");
	}
	public void message() {
		System.out.println("iphone手机发短信可以使用自制表情包");
	}
	public void playgame() {
		System.out.println("iphone手机玩游戏可以使用最高配置!");
	}
}
//测试类
public class DuiXiang{
	public static void main(String[] args) {
                //创建手机类对象
		Phone1 a=new Phone1();
                //使用公共的setXXX()/getXXX()方法
		a.setBrand("iphone11promax");
		a.setPrice(10999);
		a.setColour("green");
		System.out.println(a.getBrand()+" "+a.getPrice()+" "+a.getColour());
		//调用其他的方法
                a.call();
		a.message();
		a.playgame();
	}

}

private关键字的特点:

private:私有的,无法访问的

被private修饰的成员变量,成员方法,只能在本类中访问,外界不能直接访问

可以修饰成员变量,变量不能直接访问,但是可以间接的通过公共方法访问

 

构造方法

作用:给对象进行数据的初始化的

构造方法的格式:

1)构造方法的方法名和类名一致

2)没有具体的返回值类型

3)没有void

attention! 如果没有提供无参构造方法,系统会默认提供,建议在写标准类的时候,永远给出无参构造方法

无参构造方法

class WuCan{
	public WuCan(){
		System.out.println("劉柏汝...");
	}
}

public class DuiXiang{
	public static void main(String[] args) {
	WuCan w=new WuCan();
	//System.out.println(w);
	}
}

构造方法的注意事项:

1)无参构造方法:类名 对象名=new 类名();没有报错的原因是:如果开发者没有使用无参构造方法,系统会默认提供无参构造方法,对对象进行默认初始化,所以建议每次写代码都给出无参构造方法

2)开发中,如果给出了有参构造方法,系统将不会主动提供无参构造方法

3)构造方法是可以重载的

学习了构造方法后

标准类的写法为

1).成员变量私有化

2).提供setXXX()/getXXX()

3).提供无参构造方法/有参构造方法

3).创建对象,测试

1.通过setXXX/getXXX方法给成员变量赋值

2.通过有参构造方法赋值

下面的代码是无参构造方法和setXXX/getXXX方法和有参构造方法的集合

class wucan{
	private String name;
	private int age;
	
	public wucan(){
		String name=("凌瑞松");
		int age=(21);
		System.out.println("名字是:"+name+"  年齡是:"+age);
	}
}
 class huoqudedao{
	 private String school;
	 private String height;
	 public void setSchool(String school) {
		 this.school=school;
	 }
	 public String getSchool() {
		 return school;
	 } 
	 public void setHeight(String height) {
		 this.height=height;
	 }
	 public String getHeight() {
		 return height;
	 }
 }
class Youcan{
	private String mingzi;
    private int shuzi;
public Youcan(String mingzi,int shuzi) {
	this.mingzi=mingzi;
	this.shuzi=shuzi;
}
public void lbr() {
	System.out.println(mingzi+" "+shuzi);
}
}
public class DuiXiang{
	public static void main(String[] args) {
	wucan w=new wucan();	
	huoqudedao h=new huoqudedao();
	h.setSchool("凌瑞松就读于桂林电子科技大学");
	h.setHeight("他的身高是:173");
	System.out.println(h.getSchool()+" "+h.getHeight());
	Youcan y=new Youcan("凌瑞松",2527);
	y.lbr();
	}
}

匿名对象: 就是没有名字的对象

格式:new 类名();

匿名对象应用场景:

1)实际开发中,仅使用一次就可以了.

匿名对象直接在堆内存开辟空间,使用完毕后,立即从内存中释放调用

2)使用匿名对象的时候,可以链式编程

格式:new 类名1().方法名1(new 类名2());

this关键字

指的是访问类中的成员变量,用来区分成员变量和局部变量(重名问题)

private关键字

在内存中,成员变量随着对象的创建而存在,在堆内存中有自己的空间地址,每次都在开辟自己的空间,从内存角度考虑,很消耗内存空间,所以 java提供了关键字:static 静态修饰(静态,共享,共用):可以被多个对象共用

static关键字的特点(修饰成员变量,可以修饰成员方法)

1)随着类的加载而加载

2)优先于对象存在

3)可以被多个对象共用

4)被静态修饰的变量,方法

被静态修饰的成员 ,也成为"类成员"

class Student1{
	int num1 = 100 ;
	static int num2 = 200 ;
	
	
	//非静态的成员方法
	public void show(){
		System.out.println("show") ;
	}
	
	//静态的成员方法
	public static void function(){
		System.out.println("function") ;
	}
}

//测试类
public class JinTai{
	public static void main(String[] args){
		
		//创建一个学生类对象
		Student1 s  = new Student1() ;
		System.out.println(s.num1) ;//100
		System.out.println(s.num2) ;//200   
		s.show();
		s.function();
		System.out.println("-----------------") ;
		//类成员:属于被static修饰成员 
		//类名.成员变量
		//类名.成员方法();
		System.out.println(Student1.num2) ;
		Student1.function();
	}
}



关于static关键字的注意事项:

1)static修饰的成员,随着的类的加载而加载,优先于对象存在

在内存中,静态中不存在this关键字   this随着对象的创建而存在

2)访问问题

非静态的成员方法

可以访问静态的成员变量,也可以非静态的成员变量

可以访问静态的成员方法,也可以非静态的成员方法

静态的成员方法:
 只能访问静态的成员变量
 只能访问静态的成员方法

简单来说:静态只能访问静态

静态在使用时,不能随意使用:

如果一个变量能被多个对象使用,这个能使用static修饰

常量分类:

字面值

自定义常量(final关键字)

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值