匿名对象
* 节省代码,并且很多情况下是针对某个方法只需要调用一次的情况下。
* 匿名对象可以调用方法,也可以给成员变量赋值。 同时也可以作为方法的参数进行传递。
public class AnonDemo{
public static void main(String[] args){
System.out.println(new Student().name);
System.out.println(new Student().sex);
System.out.println(new Student().age);
}
}
class Student{
String name="poppy";
String sex="女";
int age=20;
}封装
* 概念: 隐藏对象的属性和细节,仅对外提供公共的方法进行访问。
* private
* 当类的成员变量使用private 修饰符修饰,那么就不可以直接访问到该成员变量.
* 当使用private 修饰的成员变量或者成员方法,仅能在本类中使用
* private 对于main 方法的修饰,也是可以产生作用的.
public class PrivateDemo{
public static void main(String[] args){
Student student=new Student();
//student.name="弋痕夕";//如果在外部访问private则会出现name可以在Student中访问private
student.subject();
}
}
class Student{
private String name;
private String sex;
private int age;
void subject(){
name="山鬼谣";//private在本类中没有限制
System.out.println(name+"选择的课是java");
}
}student.name(错误)
name="山鬼谣";
* javaBean:
它的所有成员变量都使用private 进行修饰,并且对外提供可访问的设置值和获取值的set,get 方法。不同的应用场景,可能命名不同,数据库的应用中称为POJO类.
public class JavaBeanDemo{
public static void main(String[] args){
Student student=new Student();
student.setName("山鬼谣");
student.setSex("男");
student.setAge(24);
student.subject();
}
}
class Student{
private String name;
private String sex;
private int age;
void setName(String nameParm){
name=nameParm;
}
//JavaBean类
String getName(){
return name;
}
void setSex(String sexParm){
sex=sexParm;
}
String getSex(){
return sex;
}
void setAge(int ageParm){
age=ageParm;
}
int getAge(){
return age;
}
void subject(){
System.out.println(name+":"+sex+","+age+"岁");
System.out.println("选择的课是java");
}
}优先原则: 对于一个类的成员方法来说,如果传递的形参的变量名称和类的成员变量名称相同,jvm在处 理的时候优先当做方法的形参来处理。
this 关键字
代表了当前对象的引用(可以理解为,当前谁来调用,那么方法中的this 就代表谁)。
对于成员变量可以区分出来的场景,this 可加也可以不加,实际效果相同。但是对于实现 javaBean/POJO 来说,我们建议都加上在setXXX,getXXX方法中.
例:
void setName(String name){
this.name=name;
}
String getName(){
return this.name;
}
* 初始化类成员变量的方式
* 在定义成员变量的同时进行赋值.
* 提供外界可访问到的方法,在方法中进行赋值.
* 通过构造方法进行赋值.
public class VariableDemo{
public static void main(String[] args){
Student student=new Student();
student.write();
Student student1=new Student("山鬼谣");//构造方法赋值
student1.write();
Student student2=new Student();
student2.setName("天净沙");//在方法中进行赋值
student2.write();
}
}
class Student{
String name="弋痕夕";//定义成员变量时同时赋值
Student(){
}
Student(String name){
this.name=name;
}
void setName(String name){
this.name=name;
}
String getName(){
return this.name;
}
void write(){
System.out.println("姓名:"+name);
}
}static
* 随着类加载而加载(静态方法区中来保存静态成员变量)
* 优先于对象创建
* 被类的所有对象共享(静态的成员变量会保存在该class的静态方法区中,所以每个对象看到的 都是同一份.)
* 可以通过类名来访问也可以通过对象名来访问(一般通过类名来访问)。
* 静态的成员,一般称为类相关的成员。
* static 修饰符既可以修饰成员变量,也可以修饰成员方法。 且修饰之后,就可以通过类名来直 接访问到。
* this变量在静态方法中不可以使用
* 静态方法中只能访问静态成员变量和静态方法;非静态方法既可以访问静态成员和方法也可以访 问非静态成员和方法。
public class StaticDemo{
public static void main(String[] args){
Person person=new Person();
person.setName("山鬼谣");
Person.skill();//通过类名来访问
}
}
class Person{
static String name;
static String sex;
void setName(String nameParm){
name=nameParm;
}
String getName(){
return name;
}
static void skill(){
System.out.println(name+"的技能是:“绝气逆空”");
}
}非静态虽然可以访问静态的方法,但是不建议这样做。
* main方法.
修饰符 返回类型 方法名 (参数列表){
}
public static void main(String[] args){
}
* public: 最大的一个访问权限,使得jvm能够成功调用
* static: 类相关的,与对象无关. A.main([]);
public class A{
main(){
System.("");
}
}
原文地址:http://13355940.blog.51cto.com/13345940/1974224