Изучение Java, день6 (модель памяти JVM знакомство и т.д.)

Изучение Java, день6 (модель памяти JVM знакомство и т.д.)

Java ... с уникальным способом , чтобы передать переменное число параметров, таких параметров с использованием массива , используя один и те же
* Если параметр не может заполнить
* ... Представитель такого множества параметров может быть передан в 0
* , если метод имеет множество параметров, переменная параметр (этот параметр ...) все параметры должны быть помещены в прошлом
* ПРИНТИНФО (String с, INT д , строка ... арг) режим таким образом , является параметром
* Принтинфо (String s, строка ... арг, внутр г) в таком параметре режима образом неправильно
* Принтинфо (String ... арг, String s, внутр d) таким параметром режима образом неправильно

	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);//创建数组的时候也可以调用
}

Память модель виртуальной машина Java
стека стека
базового типа данных (INT, символ, логическое значение, и т.д.), ссылка (адрес объекта) объект
стека кучи
все объекты ( в том числе объектов и их определение строки объект)
метода Метод зоны
каждый класс и статические переменные

Предположим , что р = Person нового человека ()
стека хранится в куче нового человека () объекта
в куче адрес BExxxxx.
Стек хранится в стеке адрес AGxxxx р, но содержимое хранится
новое лицо (объект) в адрес кучи BExxxxx

Пусть INT = 1 ,
сохраненного в стеке значение AGxxxxx I, 1

Основные типы данных, значение, сохраненное в стеке, эталонного объекта, значение, сохраненное в стеке, стек хранится в адрес объекта кучи.

Параметр прохождения метод: ссылка на объект

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);
		
	}
}

Результат
перед свопом вызова метода, ds.a значения: 0
в процессе обмена, значение ds1.a: 6
после того, как метод подкачки вызова ds.a значение: 6

Упаковка и скрытие
с использованием личного контроля логики, и использовать getXxx () и SetXXX () для работы
Q1: класс дизайна животных, а также информации , скрытие ноги
скрытого дизайна до того , когда число вход произвольного число ног

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("飞");
				
	}
}

Дизайн шкуры, ноги не может превышать 6. большой не меньше, чем минимум 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("您输入的值不正确");
		}
	}
	
}

Когда входное значение, если оно больше, чем на 6 меньше, чем 2, печать: Значение, которое вы ввели неверный

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

Q2: подготовка двух классов и треугольное TestTriAngle, в котором объявлена собственной треугольника ` длину базовой и базовую большую высоту,
заявление , что доступ общественности к частной переменной, другой класс этих общих методов , используемых для расчета площади треугольника.

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();
	}
}

Перегруженный конструктор
конструкторы и методы, как метод вариации. Конструктор перегрузки Перегрузка с тем же способом , как: имя метода, число параметров или типов параметров не является одинаковым.

Q3:Here Вставка рисунка Описание

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

JavaBean код следующие
три группы набор ПОЛУЧИТЬ

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;
	}
}

Вызов метода

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());
	}
}

После определения частной собственности, вы можете щелкнуть правой кнопкой мыши на источник → Сформировать Геттеры и сеттеры
может автоматически генерировать код для бина

Сегодня немного сложнее, слушать немного устал, это содержание изучил пять часов, заполняя его завтра.

Освобожденные восемь оригинальных статей · вона похвала 0 · Просмотров 83

рекомендация

отblog.csdn.net/Reishinj/article/details/104996495