JavaSE基础04

1.匿名对象

定义:没有名字的对象

格式:new Person().name = "zst";

          new Person().age = 25;

          new Person().speak();

意义: 节省代码,并且很多情况下是针对某一个方法只需要调用一次的情况下。

*匿名对象可以调用方法,也可以给成员变量赋值,同时也可以作为方法的参数进行传递,主要作用就是节省代码量,是代码结构更优雅。

2.封装

a、概念:隐藏对象的属性和细节,仅对外提供公共的方法进行访问。
b、private:(可修饰成员变量也可修饰成员方法)
    * 当类的成员变量使用private修饰符修饰,那么就不可以直接访问到该成员变量。  
    * 当使用private修饰的成员变量或成员方法,仅能在本类中使用,在子类是不可见的,并且对其他包的类也是不可见的。
      [ javaBean是这样一类的类:他的所有成员变量都使用private进行修饰,并且对外提供可访问的设置值和获取值的set、get方法,不同的应用场景可能命名不同,数据库中称POJO类]
    * private 对于main方法的修饰也是可以产生作用的。

工具类:全部是静态的方法,所以可以通过类名.functionName()方式来访问。
  * 一般的话都会对默认构造方法进行私有化处理,来防止别人使用时习惯性的创建对象来调用方法。
package study07;

public class Work3 {

	public static void main (String [] args){
		Square square = new Square();
		square.setLength(10);
		System.out.println("正方形的周长是:"+SquareUtil.getCircumLength(square));
		System.out.println("正方形的面积是:"+SquareUtil.getArea(square));
	}
} 
	class Square{                               //定义一个POJO类
		private int length; 
		void setLength(int length){
			this.length = length;
		}
	     int getLength(){
			return length;
		}
	}

	class SquareUtil{                          //方法类
		private SquareUtil(){
		}
		static int getCircumLength(Square square){
			return 4*square.getLength();
		}
		static int getArea(Square  square){
			return square.getLength() * square.getLength();
		}
	}

3.main方法细节

a、每个类中都可以存在main方法,但是当执行的时候,会优先查看public的class中是否有main方法。
b、如果没有public的class,那么会按照文件名优先查找类中的main方法。
c、必须定义为public

4.优先原则

对于一个类的成员方法来说,如果传递的形参变量名称和类的成员变量名称相同,jvm在处理的时候优先当作方法的形参来处理。

5.This关键字

含义:就代表了当前对象的引用,可以理解为当前谁来调用那么方法中的this就代表谁。

 * 对于成员变量可以区分出来的场景,this可加也可不加,实际效果相同,但是对于实现javaBean/POJO来说,都建议加上setXXX(),getXXX()方法。

* this可以加在成员变量的前面来指定对应的引用,也可以加在成员方法的前面。

例:

private void setName(String name){

   this.name = name;    //将参数值赋给类中的成员变量

}

在上述代码中,成员变量与在setName()方法中的形式参数的名称相同,都为name,在类中区分使用的是哪一个变量用this关键字指定,this关键字被隐式地用于引用对象的成员变量和方法。

在上述代码中,this.name指定的就是Book类中的name成员变量,而this.name = name语句中的第二个name则指定的是形参name。实质上setName()方法实现的功能就是将形参name的值赋予成员变量name。


在setName()方法体中也可以使用name=name这种形式,可以在引用成员变量的时候省略this关键字,其结果与使用this关键字是一致的。this除了可以调用成员变量或成员方法之外,还可以作为方法的返回值。

public Book getBook(){

return this;

}

在getBook()方法中,方法的返回值为Book类,所以方法体中使用return this这种形式将Book类的对象进行返回。

package study07;

public class Work2 {
	private String title;
	private String author;
	private double price;
	//利用构造方法初始化域
	public Work2(String title,String author,double price){ 
		this.title = title;
		this.author= author;
		this.price = price;
	}
	public Work2() {
		// TODO Auto-generated constructor stub
	}
	String getTitle(){      
		return title;
	}
	String getAuthor(){
		return author;
	}
	double getPrice(){
		return price;
	}

	public static void main(String[ ] args){
		Work1 book = new Work1("《放学后》","东野圭吾",28.00);  //创建对象时赋值
		System.out.println("书名:"+book.getTitle());
		System.out.println("作者:"+book.getAuthor());
		System.out.println("价格:"+book.getPrice()+"元");
	}
}

6.初始化成员变量(对象的属性)的方法

a、在定义成员变量的同时进行赋值

     在构造方法执行前进行赋值,并且该类买个实现的对象都会被初始化为该值。

     意义:当我们真的需要一个类的所有对象某些成员变量的值一致的时候。

b、提供外界可访问到的方法,在方法中直接赋值

     意义:可以在创建对象的同时进行赋值,同时还可以动态的指定设定的值是什么。

c、通过构造方法进行赋值

     通过调用某个设置值的方法进行赋值,在创建对象完成之后

     意义:动态的修改成员变量的值。

7.static关键字

a、随着类的加载而加载  (静态方法区中来保存静态的成员变量)
b、优先于对象的创建 
c、被类的所有对象共享(静态的成员变量会保存在该类class的静态方法区中,所以每个对象看到的都是同一份)
d、可以通过类名来访问也可以通过对象名来访问,类名.静态成员(推荐使用类名),效果一样。
e、静态的成员,一般称为类的相关成员。
f、static修饰符既可以修饰成员变量,也可以修饰成员方法,且修饰后,就可以通过类名来直接访问到。
g、this变量在静态方法中不可以使用。
h、静态方法中只能访问静态成员变量和静态方法。(非静态方法既可以访问静态成员和方法也可以访问非静态成员和方法,非静态可以访问静态方法,但不建议这么做)
public class Work1 {
	static double PI= 3.1415;      //在类中定义静态常量
	static int id;                 //在类中定义设置静态变量
	public static void method1(){  //在类中定义设置静态方法
	}
	public  void method2(){         //在类中定义一个非静态方法
		System.out.println(Work1.PI);    //调用静态常量
  System.out.println(Work1.id);                  //调用静态变量
		Work1.method1();                 //调用静态方法
	} 
	public static Work1 method3(){     //在类中定义一个静态方法
		method2();                 //调用非静态方法   错!静态方法中不可以直接调用非静态方法
		return this;                //在return中使用this关键字编译器会报错,g中描述this关键字不可以在静态方法中使用
	}
}

8.main方法

修饰符 返回类型 方法名(参数列表){
}
public static void main(String[] args){
}
public:公共修饰符,最大的一个访问权限,使得jvm能够成功调用。
static:类相关的,与对象无关。
void:不需要返回值
方法名:main
参数列表:执行的时候可以传递参数
weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值