1.匿名对象
定义:没有名字的对象
格式:new Person().name = "zst";
new Person().age = 25;
new Person().speak();
意义: 节省代码,并且很多情况下是针对某一个方法只需要调用一次的情况下。
*匿名对象可以调用方法,也可以给成员变量赋值,同时也可以作为方法的参数进行传递,主要作用就是节省代码量,是代码结构更优雅。
2.封装
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方法细节
4.优先原则
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关键字
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){
}