Aprender java, day6 (conocido JVM modelo de memoria, etc.)

Aprender java, day6 (conocido JVM modelo de memoria, etc.)

Java ... con la forma única de pasar un número variable de parámetros, tales parámetros con el uso de una matriz mediante el mismo
* Si ningún parámetro no puede llenar
* ... De tal pluralidad de parámetros se pueden pasar a un 0
* si el método tiene una pluralidad de parámetro, el parámetro variable (este parámetro ...) todos los parámetros deben ser colocados última
* printInfo (String s, int d , cadena ... args) modo de tal manera es el parámetro un
* printInfo (String s, cuerdas ... args, int d) en un parámetro tal modo de manera que está mal
* printInfo (String ... args, cadena s, int d) en un parámetro tal modo de manera que está mal

	public void printInfo1(String... args) { //创建方法
		for(int i = 0; i < args.length; i++) {
			System.out.println(args[i]);
		}
public class Test3 {
	public static void main(String[] args) {
		Person2 p2 = new Person2();
		p2.printInfo1("lisi","23","男");//使用...的方式直接调用
		
	String[] ss2 = new String[] {"北京市","131111111","3213241111111111"};
		p2.printInfo1(ss2);//创建数组的时候也可以调用
}

Memoria modelo JVM
pila pila
básica tipo de datos (int, char, boolean, etc.), la referencia (dirección del objeto) del objeto
pila montón
todos los objetos (incluyendo objetos y sus definiciones objeto de cadena)
Métodos método de la zona
cada clase y variables estáticas

Supongamos persona p = new Persona ()
de pila se almacena en el objeto montón nueva persona ()
en la dirección de montón de BExxxxx.
Stack se almacena en la pila de dirección AGxxxx p, pero el contenido se almacena
nuevo objeto Persona () en la dirección de montón BExxxxx

int Supongamos que i = 1
almacenada en la pila es el valor de AGxxxxx i, 1

tipos de datos básicos, el valor almacenado en la pila, objeto de referencia, el valor almacenado en la pila, la pila se almacena en la dirección de objeto montón.

Parámetro método pasando: objeto de referencia

public class DataSwap {
	public int a;
}
public class Test5 {
	public static void swap(DataSwap ds1) {
		ds1.a = 6;
		System.out.println("在swap方法中,ds1.a的值是:" + ds1.a);
	}
	public static void main(String[] args) {
	//把new Dataswap()存到了堆内存中,假设地址为BE0001
	//ds引用对象存到栈中,假设地址是AD0001,值是new
		DataSwap ds = new DataSwap();
		System.out.println("调用swap方法之前,ds.a的值是:" + ds.a);
	//调用swap方法,给ds1引用对象保存到栈中,假设地址是AD0002,存的值是来自与实参(ds),也就是ds的站中存的值
	//这个值实际上就是之前 new DataSwap()对象在堆内存中的地址
		swap(ds);
		System.out.println("调用swap方法之后,ds.a的值是:" + ds.a);
		
	}
}

El resultado es
antes de que el intercambio de llamada de método, ds.a valor es: 0
en el proceso de intercambio, el valor es ds1.a: 6
después de un método de intercambio llamada se ds.a valor: 6

Embalaje y ocultar
el uso de lógica de control privado, y el uso getXXX () y setXXX () para operar
Q1: clase de diseño de animal, y ocultar información piernas
diseño ocultos antes, cuando el número de entrada es un número arbitrario de piernas

public class Animal {

	public int legs;
	
	public void printLegs() {
		System.out.println("legs: " + legs);
	}
	public int getLges(int t) {
		return legs = t;
	}
	public void eat(String eat) {
		System.out.println("Eating:" + eat);
	}
	public void move(String move) {
		System.out.println("Moving:" + move);
	}
}
public class Zoo {
	public static void main(String[] args) {
		Animal xb = new Animal();
		xb.getLges(6);
		xb.printLegs();
		xb.eat("气球");
		xb.move("飞");
				
	}
}

El diseño de la piel, las piernas no pueden exceder 6. grande no menos del mínimo 2

public class Animal {

	private int legs;
	
	public void printLegs() {
		System.out.println("legs: " + legs);
	}
	public void eat(String eat) {
		System.out.println("Eating:" + eat);
	}
	public void move(String move) {
		System.out.println("Moving:" + move);
	}
	
	public void setLegs(int a) {
		if(a <= 6 && a >= 2) {
			legs = a;
		}else{
			System.out.println("您输入的值不正确");
		}
	}
	
}

Cuando el valor de entrada, si es mayor de 6, de menos de 2, la impresión: El valor introducido es incorrecto

public class Zoo {
	public static void main(String[] args) {
		Animal xb = new Animal();
		xb.setLegs(-1000);
		xb.printLegs();
		xb.eat("气球");
		xb.move("飞");
				
	}
}

P2: preparación de dos clases, y el triángulo TestTriAngle, en donde s del triángulo declaró longitud de base privada y la base de altura elevada,
una declaración que el acceso público a la variable privada, y otra clase de estos métodos comunes que se utilizan para calcular el área de un triángulo.

public class TriAngle {
	//声明私有的base和height
	private int base;
	private int height;
	
	//使用setArea()声明公共方法访问私有变量
	public void setArea(int b,int h) {
	base = b;
	height = h;
}
	//使用getBase(),getHeight(),getArea()声明公共方法访问私有变量
	public void getBase() {
		System.out.println("base: "+ base);
	}
	public void getHeight() {
		System.out.println("height: " + height);
	}
	public void getArea() {
		System.out.println("area= "+ (base * height) / 2);
	}
}
public class TestTriAngel {
	public static void main(String[] args) {
		
	//使用公共方法,计算三角形的面积
	TriAngle t = new TriAngle() {};
		t.setArea(7, 9);
		t.getBase();
		t.getHeight();
		t.getArea();
	}
}

Sobrecargado constructor
constructores y métodos, como es el método de variación. sobrecargas de sobrecarga de constructor con el mismo método: como el nombre del método, el número de parámetros o tipos de parámetros no son los mismos.

P3:Aquí Insertar imagen Descripción

public class Person {
	String name;
	int age;
	String school;
	String major;
	
	public Person(String n, int a) {
		 name = n;
		 age = a;
	}
	public Person(String n, int a,String s) {
		name = n;
		age = a;
		school = s;
	}
	public Person(String n, int a,String s,String m) {
		name = n;
		age = a;
		school = s;
		major = m;
	}
	public static void main(String[] args) {
		
		Person one = new Person("zhangsan",18);
		System.out.println("one的姓名是: " + one.name  + "\n" + "年龄是: " + one.age);
		
		Person two = new Person("lisi",18,"ailisidun");
		System.out.println("two的姓名是: " + two.name  + "\n" + "年龄是: " + two.age + "\n" + "学校是: " + two.school);
		
		Person thr = new Person("wangwu",17,"ailisidun","zuosi");
		System.out.println("thr的姓名是: " + thr.name  + "\n" + "年龄是: " + thr.age + "\n" + "学校是: " +thr.school + "\n"+ "专业是: " + thr.major);
		}
		
	}

JavaBean

código JavaBean siguientes
tres grupos conjunto Get

public class Person2 {
	private String name;
	private int sex;
	private int age;
	
	public void steName(String name) {
		this.name = name;
	}
	
	public String getName() {
		return this.name;
	}
	
	public void setSex(int sex) {
		this.sex =sex;
	}
	
	public int getSex() {
		return this.sex;
	}
	
	public void setAge(int age) {
		 this.age = age;
	}
	
	public int getAge() {
		return this.age;
	}
}

Llamar al método

public class test {
	public static void main(String[] args) {
		
		Person2 p2 = new Person2();
		
		p2.steName("zhangsan");
		p2.setSex(0);
		p2.setAge(20);
		
		System.out.println(p2.getName());
		System.out.println(p2.getSex());
		System.out.println(p2.getAge());
	}
}

Después de la definición de la propiedad privada, puede haga clic en Fuente → Generar captadores y definidores
pueden generar automáticamente código para Javabean

Hoy en día un poco más difícil, escuchar un poco cansado, este contenido estudió cinco horas, llenándolo mañana.

Publicado ocho artículos originales · ganado elogios 0 · Vistas 83

Supongo que te gusta

Origin blog.csdn.net/Reishinj/article/details/104996495
Recomendado
Clasificación